WA SET URL FILTERS
WA SET URL FILTERS ( {* ;} object ; filtersArr ; allowDenyArr )
引数 | 型 | 説明 | |
---|---|---|---|
* | 演算子 | → | 指定時, objectはオブジェクト名 (文字列) 省略時, objectは変数 |
object | any | → | オブジェクト名 (* 指定時) または 変数 (* 省略時) |
filtersArr | Text array | → | フィルタ配列 |
allowDenyArr | Boolean array | → | 許可-拒否配列 |
このコマンドはスレッドセーフではないため、プリエンプティブなコードには使えません。
説明
WA SET URL FILTERS コマンドは、* と object 引数で指定したWebエリアで、1 つ以上のフィルタを設定するために使用します。
リクエストされたページをロードする前に、4D はフィルタのリストを照会し、ターゲットのURL に接続が許可されているかどうかを調べます。URLの判定はfiltersArr とallowDenyArr 配列の内容に基づき行われます。
リクエストされたURL が許可されない場合、ページはロードされず、On URL Filtering フォームイベントが生成されます。
filtersArr と allowDenyArr 配列は同期されていなければなりません。
- filtersArr 配列のそれぞれの要素には、フィルタするURL が含まれます。1 つ以上の文字を表すワイルドカードとして * を使用できます。
- allowDenyArr 配列のそれぞれ対応する要素には、URL を許可 (True) するか拒否 (False) するかを示すブール値が含まれます。
同じURL が許可および拒否されているなど、設定レベルで矛盾がある場合、最後の設定が考慮されます。
フィルタを無効にするには、コマンドを呼び出す際に空の配列を渡すか、配列の最後の要素で、filtersArr 配列に"*" を、allowDenyArr 配列にTrueを渡します。
コマンドが実行されると、フィルタはWeb エリアのプロパティとなります。filtersArr とallowDenyArr が削除されたり初期化されたりしても、コマンドが再実行されるまでフィルタは有効です。エリアで有効になっているフィルタを取得するには、WA GET URL FILTERS コマンドを使用しなければなりません。
重要: このコマンドによって実行されるURLフィルタリングは、WA OPEN URL コマンドと"javascript:"で始まるURLを除き、ページの主URLを変更するリクエストであればユーザーからのリクエストであってもjavascriptコードであっても4Dコードであっても、どのようなリクエストに対しても適用されます。
例題 1
.org, .net そして .fr Web サイトへのアクセスを禁止したい場合:
ARRAY TEXT($filters;0)
ARRAY BOOLEAN($AllowDeny;0)
APPEND TO ARRAY($filters;"*.org")
APPEND TO ARRAY($AllowDeny;False)
APPEND TO ARRAY($filters;"*.net")
APPEND TO ARRAY($AllowDeny;False)
APPEND TO ARRAY($filters;"*.fr")
APPEND TO ARRAY($AllowDeny;False)
WA SET URL FILTERS(MyWArea;$filters;$AllowDeny)
例題 2
日本のサイト以外へのアクセスを禁止したい場合(.jp):
ARRAY TEXT($filters;0)
ARRAY BOOLEAN($AllowDeny;0)
APPEND TO ARRAY($filters;"*") //Select all
APPEND TO ARRAY($AllowDeny;False) //Deny all
APPEND TO ARRAY($filters;"www.*.jp") //Select *.jp
APPEND TO ARRAY($AllowDeny;True) //Allow
WA SET URL FILTERS(MyWArea;$filters;$AllowDeny)
例題 3
4D のWeb サイトにのみアクセスを許可する場合 (.com, .fr, .es, etc.):
ARRAY TEXT($filters;0)
ARRAY BOOLEAN($AllowDeny;0)
APPEND TO ARRAY($filters;"*") //Select all
APPEND TO ARRAY($AllowDeny;False) //Deny all
APPEND TO ARRAY($filters;"www.4D.*") //Select 4d.fr, 4d.com...
APPEND TO ARRAY($AllowDeny;True) //Allow
WA SET URL FILTERS(MyWArea;$filters;$AllowDeny)
例題 4
ローカルのドキュメントにのみアクセスを許可 (C://doc フォルダ内):
ARRAY TEXT($filters;0)
ARRAY BOOLEAN($AllowDeny;0)
APPEND TO ARRAY($filters;"*") //Select all
APPEND TO ARRAY($AllowDeny;False) //Deny all
APPEND TO ARRAY($filters;"file://C:/doc/*")
//Select the path file:// allowed
APPEND TO ARRAY($AllowDeny;True) //Allow
WA SET URL FILTERS(MyWArea;$filters;$AllowDeny)
例題 5
特定のキーワードを含むサイトを除いて許可する場合:
ARRAY TEXT($filters;0)
ARRAY BOOLEAN($AllowDeny;0)
APPEND TO ARRAY($filters;"*")
APPEND TO ARRAY($AllowDeny;True) //Allow all
APPEND TO ARRAY($filters;"*elcaro*") //Deny all that contain elcaro
APPEND TO ARRAY($AllowDeny;False)
WA SET URL FILTERS(MyWArea;$filters;$AllowDeny)
例題 6
特定のIP アドレスへのアクセスを拒否する場合:
ARRAY TEXT($filters;0)
ARRAY BOOLEAN($AllowDeny;0)
APPEND TO ARRAY($filters;"*") //Select all
APPEND TO ARRAY($AllowDeny;True) //Allow all
APPEND TO ARRAY($filters;86.83.*") //Select IP addresses beginning with 86.83.
APPEND TO ARRAY($AllowDeny;False) //Deny
APPEND TO ARRAY($filters;86.1*") //Select IP addresses beginning with 86.1 (86.10, 86.135 etc.)
APPEND TO ARRAY($AllowDeny;False) //Deny
WA SET URL FILTERS(MyWArea;$filters;$AllowDeny)
//(Note that the IP address of a domain may vary).