以下のセクションでは、URLリストでサポートされている形式について説明します。管理者は、Netskope REST API V2を呼び出して URL リストをアップロードする際に、リストの種類 (正規表現または完全一致) を指定できます。
サポートされているURL形式
このセクションでは、URL リストで使用できる構文の例を示します。例えば、URL で使用できる文字やスペースなどです。さらに、検証では完全一致 URL またはワイルドカード URL が使用されます。 検証に失敗した場合には、特定のエラーメッセージが表示されます。
- 不正な形式のURL(スペース、非ASCII文字を含むもの)は許可されていません。非ASCII文字を含むURLは、適切にパーセントエンコード(「%」の後に2桁の16進数)する必要があります。
- ホスト名にパーセントエンコーディングを使用することはできません。代わりにPunycodeを使うべきです。
- TLD(*.gov)は許可されています。
- '*'が複数存在する場合はエラーとなります。'*'が存在する場合、それは最初の文字でなければなりません。そして、その後に「.」(ドット)が続く必要があります。これにより、指定されたドメインのすべてのサブドメインを照合できるようになります。したがって「*.google.com」は問題ありませんが「*google.com」または「www.google.*」そうではない。
- スキーム(http/https)は無視されるため、URLに追加しないことを推奨します。
- user:password@host はサポートされていません
- 空行は無視されます
- コメント文字([#;])で始まる行は無視されます。
- ホスト名: 文字、数字、ハイフンのみで構成され、開始やハイフンで終わることはできません。パーセントエンコーディングは許可されていません。Punyコードは受け入れられます。
- パス、クエリ、フラグメント: 予約されていない任意の組み合わせ ([a-z0-9-._~])、パーセントエンコーディング (%[0-9a-f]{2}) と区切り文字 ([!$&'()*+,;=]) が使用可能
- *.foo.com には自動的に foo.com も含まれます。これにより、単一のエントリ(*.foo.com)を持つことができます。カスタムカテゴリを導き出すために、URLリストに2つのエントリ(*.foo.comとfoo.com)を使用する代わりに。そのカスタム カテゴリはポリシーなどさまざまな場所で使用できます。 ドメイン名を直接受け入れる他の設定(ポリシーなど)を作成する場合は、サブドメインとドメイン自体を一致させるために、2つの別々のエントリを指定する必要があります。Netskopeの他のサブシステムにおける変更点:*.domain.comを統合するおよび domain.com現在サポートされていません。
Valid URL Examples
"# wildcard", "*.google.com", "# punycode", "xn--jp-cd2fp15c.xn--fsq.jp", "# percent encoded space", "www.apple.com/i%20mac", "https://onedrive.live.com/?authkey=%21AKD9vi-K9pXhFlw&cid=F3CDA5103641D53D&id=F3CDA5103641D53D%21157&parId=F3CDA5103641D53D%21110&o=OneUp",
Invalid URL Examples
# url with space "www.domain with space.com/some/path", "www.acme.com/path with space", "www.acme.com/some/path/foo.bar?q=query with space", # percent-encoding not allowed in domain; must use punycode "www.domain%20with%20space.com/some/path", # Invalid ip addresses "http://0.0.0.0", "http://1.2.3/some/path", "http://1.1.1.1.1/foo/bar", "http://123456789", # invalid port "WWW1.PYTHON2.ORG:65536/doc/#frag", "www.example.net:foo", "www.example.net:0", # invalid wildard "www.google.*", "*google.com", # empty host "?param=1", # username/password in host "https://user:password@www.acme.com:8080/path/to/search?P1=foo&P2=bar#Results"
IPアドレス範囲とCIDR検証
以下はIP/CIDR範囲に関して考慮すべき事項であり、例も示されています。
- IPアドレス範囲はABCD-WXYZと指定されています。CIDR付きIPアドレスはABCD/ の形式で指定されます。<bits>
- IPアドレス範囲の後にパスやクエリなどの他のURLコンポーネントが続く場合、エラーが報告されます。IPアドレス/CIDRの後にパス/クエリが続く場合、それは正確なURLとして解釈されます。
- IPアドレスは0.0.0.0であってはなりません。IPアドレス範囲において、開始アドレスは終了アドレスより小さくなければなりません。 CIDR表記のIPアドレスは、ホスト部分がゼロでなければなりません。
- 重複する範囲もサポートされています。このような範囲が異なるカテゴリに関連付けられている場合、重複する範囲内のIPアドレスを検索すると、複数のカテゴリが見つかることになります。例えば、次の 2 つの範囲を考慮すると、192.186.1.2 のルックアップその結果、「カテゴリーA」と「カテゴリーB」が導き出されることになる。
- 192.186.1.1 – 192.168.1.4(カテゴリーA)
- 192.186.1.1 – 192.168.1.20(カテゴリーB)
有効な範囲とCIDRの例
# Range ok 192.168.1.10-192.168.1.20 # CIDR ok 192.168.1.0/24
無効な範囲とCIDRの例
# Invalid ip ranges and CIDR "http://1.2.3.20-1.2.3.10 "http://1.2.3.10-1.2.3.20/some/path" "http://1.2.3.4/24"
以下は、URL パスに数字を含めることができるため、IP アドレスや CIDR の代わりに正確な URL として扱われます。
"http://1.2.3.4/24/some/path"
サポートされている正規表現
以下は正規表現リストを作成する際に考慮すべき事項です。さらに、このセクションでは正規表現の例とサポートされている形式を示します。
- 許可されているセットはPCRE(先読み/後読みなし)です。
- 正規表現内のスキーマ(http/https)はサポートされていません。例えば「https://.google.com」受信URL「travel.google.com」には一致しません
- 正規表現ではURLパスとクエリパラメータが許可されており、マッチングに使用できます。
- 後方参照および部分式のキャプチャはサポートされていません
- 文字と文字列
- などの文字クラス。(ドット)、[abc]、[^abc]、および定義済みの文字クラスs、d、w、v、h、およびそれらの否定形(S、D、W、V、H)。
- 数量詞:
?、*、+などの量指定子は、サポートされている任意の部分式に適用する場合にサポートされます。
{n}、{m,n}、{n,}などの境界付き繰り返し修飾子は、制限付きでサポートされています。任意の繰り返しサブパターンの場合:nとmは小さいか無限大である必要があります。例:(a|b){4}、(ab?c?d){4,10} または (ab(cd)*){6,}。
- 括弧の使用。これには、名前付きおよび名前なしのキャプチャ形式と非キャプチャ形式が含まれます。しかし、キャプチャは無視されます。
- 記号「|」を用いた交替。例:foo|bar。
- アンカー ^、$、A、Z、z。
- オプション修飾子 – これらを使用すると、サブパターンに対して動作をオン<option><option> ((?)) およびオフ ((?-)) に切り替えることができます。サポートされているオプションは以下のとおりです。
- 大文字を区別しないマッチング
- 複数行マッチング
- 解釈する 。「任意のキャラクター」として
- 拡張構文では、パターン内のほとんどの空白文字が無視されます。
例えば、式 foo(?i)bar(?-i)baz は、一致の bar 部分に対してのみケースを区別しないマッチングを有効にします。
サポートされていない正規表現
以下の正規表現はサポートされていません。
- 後方参照と部分式のキャプチャ
- (*SKIP)や(*PRUNE)などの制御動詞を逆方向に動かす
- サブルーチン参照 (?1) のように、1 はキャプチャグループの番号です。
- 再帰パターン(?R)、(?0)など
Valid Regex Examples
"^client[0-9]\.google\.com" # match client1.google.com, client2.google.com ...
"^app\.slack\.com\/.*\/netskope" # app.slack.com/foobar/netskope etc.
"^google\.com" # match google.com
"^www.foobar.com\/api\?action=create" # Match specific query parameter and value
"^sgr\d{1,3}.apple.com" # match sgr0.apple.com through sgr999.apple.com
無効な正規表現の例
"((foo|bar)" # Missing close parenthesis for group started at index 0 "http://beginwith^[/]*/path" #Embedded start anchors not supported
ヒント
- 正規表現内のアスタリスク (*) の使用を最小限に抑えてください。バックトラッキングが発生し、パフォーマンスに影響を与える可能性があります。
- 拡張URLリスト機能は、現在、予約文字やASCII 16進コードの解析および保存をサポートしていません。バックラッシュは予約文字であるため、URLリストを正常に保存するにはエスケープする必要があります。これはAPIのみに適用され、UIには影響しません。
URLリストの制限
現在、テナントごとのすべてのURLリストの合計上限は30万です。URLリストの制限 そのテナント内のすべてのURLリストにおける正規表現の数は1Kです(この1Kという数字には、展開された形式ではなく、書き込まれた正規表現のみが含まれます)。
ウェブサイト UI および REST API V2 を介したアップロードには、上記の URL および正規表現数の制限に加えて、1 回あたりのアップロードの制限 (ファイル サイズ) が設けられています。 テナントごとのURLリスト数の制限を超えない限り、7MBサイズのファイルを複数アップロードできます。
検証エラー
検証に失敗した場合には、特定のエラーメッセージが返されます。例えば:
"errors": [ [ "www.domain with space.com/some/path", "Invalid host" ], [ "www.acme.com/path with space", "Invalid Path" ],

