JP7498844B1 - ウェブフィルタリングシステム - Google Patents

ウェブフィルタリングシステム Download PDF

Info

Publication number
JP7498844B1
JP7498844B1 JP2023220640A JP2023220640A JP7498844B1 JP 7498844 B1 JP7498844 B1 JP 7498844B1 JP 2023220640 A JP2023220640 A JP 2023220640A JP 2023220640 A JP2023220640 A JP 2023220640A JP 7498844 B1 JP7498844 B1 JP 7498844B1
Authority
JP
Japan
Prior art keywords
hashed
keyword
data
server
keywords
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
JP2023220640A
Other languages
English (en)
Inventor
教徳 ▲高▼橋
一成 針村
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
NETSTAR INC.
Original Assignee
NETSTAR INC.
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by NETSTAR INC. filed Critical NETSTAR INC.
Priority to JP2023220640A priority Critical patent/JP7498844B1/ja
Application granted granted Critical
Publication of JP7498844B1 publication Critical patent/JP7498844B1/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

  • Information Transfer Between Computers (AREA)

Abstract

【課題】ウェブサイトに送信しようとするデータの内容を踏まえてアクセスを制御する技術の提供。【解決手段】DBには予め、ユーザが登録した個々のキーワード及びこれをハッシュ化して得られるハッシュ化キーワードが格納されている。フィルタリングサーバでは、個々のキーワードがリクエストのボディデータに含まれるか否かを確認すべく、ボディデータを分割して生じる分割データを順にハッシュ化し(S63,S71)、これを対象としてハッシュ化キーワードとのマッチングを行い(S64)、一致したら(S64:Yes)規制判定を下す(S65)。ハッシュ化することでマッチングを高速に行うことができる。また、2番目以降のハッシュ化分割データをマッチングの対象とする際には、その先頭に1つ前のハッシュ化分割データの末尾部を連結するため(S72)、2つの分割データに跨って存在するキーワードを見逃すことなく規制判定を下すことができる。【選択図】図6

Description

本発明は、ウェブサイトに対するアクセスの制御、特に、ウェブサイトに対し送信しようとするデータの内容を踏まえてアクセスを制御するウェブフィルタリングシステムに関する。
従来、コンピュータとそのコンピュータがアクセスしようとするウェブサーバとの間の通信を所定の規則に沿って制御する技術が知られている。例えば、特許文献1には、管理者によりカテゴリ毎の閲覧可否の設定が予めなされており、ウェブサイトの閲覧要求を受け付けると、フィルタリングサーバにそのウェブサイトのカテゴリを問い合わせ、フィルタリングサーバから送信されたカテゴリ情報に基づいてウェブサイトの閲覧を禁止又は許可するフィルタリング方法が開示されている。また、特許文献2には、第1のコンピュータから第2のコンピュータへのアクセスを制限するか否かを決定するためのアクセス制限条件に、第2のコンピュータにより提供されるサービスに含まれる個々の機能(ログイン、メール、書き込み、アップロード等)単位での許可又は禁止の設定が含まれうることが記載されている。
特開2023-134969号公報 特開2015-141609号公報 特開2007-257346号公報
前者の先行技術によれば、URLにより特定されるウェブサイトのカテゴリに基づいてそのウェブサイトへのアクセスを制御することができ、後者の先行技術によれば、ウェブサイトにより提供される特定の機能のみ利用を許可しつつ他の機能は利用を禁止する等、1つのウェブサイトに対する制御を機能に応じて細分化することができると考えられる。しかしながら、いずれの先行技術においても、ウェブサイトに送信される情報の内容には関与していないため、不適切な情報が送信されないようにするには、閲覧には問題がなくても、ウェブサイト全体、又はウェブサイトにより提供される機能全体で利用を禁止せざるを得ない。
一方、電子掲示板システムにおいて、投稿された掲示文章に電子掲示板への掲示に不適切な掲示禁止用語が含まれる場合に、自動的に電子掲示板への掲示を拒否し、掲示禁止用語は含まれないものの個人を誹謗中傷した内容が記載された掲示文章や個人情報が記載された掲示文章については、管理者が確認した上で削除するようなシステムも存在するが(例えば、特許文献3を参照。)、このような機能を備えたウェブサイトはごく一部に過ぎない。また、不適切と捉えられる情報はユーザ(企業や学校等)により異なることから、仮に全てのウェブサイトがこのような機能を備えたとしても、ユーザにとって満足のいく運用がなされるとは限らない。これらの点を鑑みると、ユーザが不適切と捉える情報が送信されないようにするには、送信側において何らかの制御が求められる。
そこで、本発明は、ウェブサイトに送信しようとするデータの内容を踏まえてアクセスを制御する技術の提供を課題とする。
上記の課題を解決するため、本発明は以下のウェブフィルタリングシステムを採用する。なお、以下の括弧書中の文言はあくまで例示であり、本発明はこれに限定されるものではない。
すなわち、本発明のウェブフィルタリングシステムは、ユーザにより予め登録された1以上のキーワードが格納された記憶部と、ウェブサーバに対するブラウザからのリクエストの規制に関する問い合わせを受け付けると、リクエストのボディデータにキーワードが含まれるか否かに基づいて判定を行い、問い合わせの送信元に判定結果を返す判定部とを備えている。
ウェブフィルタリングシステムにおいて判定に用いられるキーワードは、ユーザにより予め登録されたものである。したがって、ウェブフィルタリングシステムによれば、規制するか否かの判定をユーザの意向に沿って行うことができ、ユーザが不適切と捉えるキーワードを含むデータの送信を確実に規制することが可能となる。
好ましくは、上述した態様のウェブフィルタリングシステムにおいて、判定部は、ボディデータをハッシュ化して得られるハッシュ化データとキーワードをハッシュ化して得られるハッシュ化キーワードとのマッチングを行うことにより、ボディデータにキーワードが含まれるか否かを確認する。
この態様のウェブフィルタリングシステムによれば、ハッシュ化データとハッシュ化キーワードとのマッチングを行うため、ハッシュ化せずにマッチングを行う場合と比較して、マッチングひいてはボディデータにキーワードが含まれるか否かの確認を高速に実行することができる。
より好ましくは、上述したいずれかの態様のウェブフィルタリングシステムにおいて、記憶部は、キーワード及びこれに対応するハッシュ化キーワードが予め格納されている。
この態様のウェブフィルタリングシステムによれば、マッチングの際に記憶部に格納されているハッシュ化キーワードをそのまま用いることができるため、個々のキーワードをその都度ハッシュ化する必要がなく、マッチングの効率を向上することができる。
さらに好ましくは、上述したいずれかの態様のウェブフィルタリングシステムにおいて、判定部は、ボディデータを所定のサイズ毎に分割し、分割データをハッシュ化して得られるハッシュ化分割データとハッシュ化キーワードとのマッチングを行い、2番目以降のハッシュ化分割データをマッチングの対象とする場合には、当該ハッシュ化分割データの先頭に、1つ前のハッシュ化分割データの末尾部をなす、ユーザにより登録された最長のキーワードの文字数分のハッシュデータを連結する。
この態様のウェブフィルタリングシステムによれば、2番目以降のハッシュ化分割データの先頭にその1つ前のハッシュ化分割データの末尾部を連結してなるハッシュ化データを対象としてハッシュ化キーワードとのマッチングを行うため、2つの分割データに跨って存在しているキーワードを見逃すことなく規制の判定を下すことができ、データの送信を確実に規制することが可能となる。
以上のように、本発明によれば、ウェブサイトに送信しようとするデータの内容を踏まえてアクセスを制御することができる。
一実施形態のウェブフィルタリングシステム1を示すブロック図である。 プロキシ型の通信制御を説明する図である。 ICAP型の通信制御を説明する図である。 リダイレクトサーバ型の通信制御を説明する図である。 フィルタリング判定処理の手順例を示すフローチャートである。 キーワード判定処理の手順例を示すフローチャートである。 ユーザにより登録されたキーワードリストの一例を示す図である。 キーワード判定処理の各段階でマッチングの対象となるハッシュ化データを説明する図である。 キーワードが分割データ1に含まれている場合の例を示す図である。 キーワードが分割データ1~2に跨っている場合の例を示す図である。
以下、本発明の実施の形態について、図面を参照しながら説明する。なお、以下の実施形態は好ましい例示であり、本発明はこの例示に限定されるものではない。
図1は、一実施形態のウェブフィルタリングシステム1を示すブロック図である。
ウェブフィルタリングシステム1は、インターネット上に存在する様々なウェブサーバWSへのユーザ環境下(例えば、学校や企業等の環境下)にある端末からのアクセスを、予め登録された情報に基づいて制御するシステムである。アクセスの許可又は規制を判定するためのプログラムは、クラウド上に配置されたフィルタリングサーバ10に実装されており、フィルタリングサーバ10のCPU11がこのプログラムの実行主体となる。また、フィルタリングサーバ10にはデータベース(DB)12が設けられており、プログラムによる判定に用いられる様々な情報が格納されている。
クラウド上には、フィルタリングサーバ10に加えて、プロキシサーバ20及びリダイレクトサーバ30が配置されている。また、ユーザ環境下の端末には、ブラウザ40が搭載されており、必要に応じてさらにアプリケーション50やブラウザ拡張機能60がインストールされている。端末のブラウザ40からウェブサーバWSにアクセスしようとすると、プロキシサーバ20、リダイレクトサーバ30、アプリケーション50のいずれかを介して、フィルタリングサーバ10に対し、ブラウザ40からのリクエストを規制するか否かに関する問い合わせがなされ、その結果に基づいて通信が制御される。
言い換えると、ウェブフィルタリングシステム1においては、ブラウザ40とウェブサーバWSとの間の通信を制御するための3つの形態が設けられており、端末に適した形態が選択される。具体的には、端末のプロキシ設定を用いてプロキシサーバ20経由で通信を制御するプロキシ型、端末のプロキシ設定を用いずにアプリケーション50経由で通信を制御するICAP型、リダイレクトサーバ30を用いてブラウザ拡張機能60経由で通信を制御するリダイレクトサーバ型、の3つの形態が利用可能である。
図2は、プロキシ型の通信制御を示している。図2中(A)は、プロキシ型の制御の流れを示すフローチャートであり、図2中(B)は、プロキシ型の制御に関わる構成を示すブロック図である。なお、(B)のブロック図における矢印はデータの流れる主な方向を示しており、矢印に付したステップ番号は(A)のフローチャートにおけるステップ番号に対応しており、黒矢印は規制を示している。また、(B)のブロック図においてインターネットの図示を省略しているが、端末とサーバとの間の通信はインターネットを介してなされる(図3及び図4においても同様)。以下、流れに沿って説明する。
ステップS11,S12:プロキシサーバ20は、ブラウザ40からウェブサーバWSに対するリクエストを受け取ると(ステップS11)、このリクエストの規制有無をフィルタリングサーバ10に問い合わせる(ステップS12)。
ステップS13:プロキシサーバ20からの問い合わせに応じて、フィルタリングサーバ10がフィルタリング判定処理を実行し、その結果をプロキシサーバ20に返す。なお、フィルタリング判定処理の内容については、別の図面を用いてさらに後述する。
ステップS14,S15:プロキシサーバ20は、フィルタリングサーバ10から「規制」が返された場合には(ステップS14:Yes)、ブラウザ40に規制の応答を返す(ステップS15)。その結果、ブラウザ40にはアクセスを規制する旨を示す画面が表示される。これに対し、フィルタリングサーバ10から「許可」が返された場合には(ステップS14:No)、プロキシサーバ20は、ステップS16に進む。
ステップS16~S18:プロキシサーバ20は、ウェブサーバWSにリクエストを送信し(ステップS16)、これに対するウェブサーバWSからのレスポンスを受け取って(ステップS17)、ブラウザ40に送信する(ステップS18)。その結果、ブラウザ40にはリクエストしたページが表示される。
図3は、ICAP型の通信制御を示している。図3中(A)は、ICAP型の制御の流れを示すフローチャートであり、図3中(B)は、ICAP型の制御に関わる構成を示すブロック図である。以下、流れに沿って説明する。
ステップS21,S22:アプリケーション50は、ブラウザ40からのウェブサーバWSに対するリクエストをフックし(ステップS21)、フックしたリクエストの規制有無をフィルタリングサーバ10に問い合わせる(ステップS22)。
ステップS23:アプリケーション50からの問い合わせに応じて、フィルタリングサーバ10がフィルタリング判定処理を実行し、その結果をアプリケーション50に返す。
ステップS24,S25:アプリケーション50は、フィルタリングサーバ10から「規制」が返された場合には(ステップS24:Yes)、ブラウザ40に規制の応答を返す(ステップS25)。その結果、ブラウザ40にはアクセスを規制する旨を示す画面が表示される。これに対し、フィルタリングサーバ10から「許可」が返された場合には(ステップS24:No)、アプリケーション50は、ステップS26に進む。
ステップS26~S28:アプリケーション50は、ウェブサーバWSにリクエストを送信し(ステップS26)、これに対するウェブサーバWSからのレスポンスを受け取って(ステップS27)、ブラウザ40に送信する(ステップS28)。その結果、ブラウザ40にはリクエストしたページが表示される。
図4は、リダイレクトサーバ型の通信制御を示している。図4中(A)は、リダイレクトサーバ型の制御の流れを示すフローチャートであり、図4中(B)は、リダイレクトサーバ型の制御に関わる構成を示すブロック図である。以下、流れに沿って説明する。
ステップS31:ブラウザ拡張機能60は、ブラウザ40からのウェブサーバWSに対するリクエストをフックし、これをリダイレクトサーバ30に転送する。
ステップS32:リダイレクトサーバ30は、ブラウザ拡張機能60から転送されたリクエストの規制有無をフィルタリングサーバ10に問い合わせる。
ステップS33:リダイレクトサーバ30からの問い合わせに応じて、フィルタリングサーバ10がフィルタリング判定処理を実行し、その結果をリダイレクトサーバ30に返す。
ステップS34~S36:リダイレクトサーバ30は、フィルタリングサーバ10から「規制」が返された場合には(ステップS34:Yes)、ブラウザ拡張機能60に対し規制画面へのリダイレクト応答を返す(ステップS35)。その結果、ブラウザ40がアクセスを規制する旨を示す画面にリダイレクトする。これに対し、フィルタリングサーバ10から「許可」が返された場合には(ステップS34:No)、リダイレクトサーバ30は、ブラウザ拡張機能60に対しウェブサーバWSへのリダイレクト応答を返す(ステップS36)。
ステップS37,S38:ブラウザ拡張機能60は、ウェブサーバWSにリクエストを送信し(ステップS37)、これに対するウェブサーバWSからのレスポンスを受け取る(ステップS38)。その結果、ブラウザ40にはリクエストしたページが表示される。
図5は、フィルタリング判定処理の手順例を示すフローチャートである。
フィルタリング判定処理は、ブラウザ40とウェブサーバWSとの間の通信を制御する過程(図2中のステップS13、図3中のステップS23、図4中のステップS33)で、リクエストの規制有無に関する問い合わせを受け付けたフィルタリングサーバ10のCPU11により実行される。以下、フィルタリング判定処理において実行される主な処理を手順例に沿って説明する。
ステップS51:CPU11は、URL判定処理を実行する。URL判定処理では、CPU11は、データベース12に予め格納されたドメイン情報やカテゴリ情報に基づいて、問い合わせを受けたリクエストのURLにより特定されるウェブサイトへのアクセスを許可するか否かを判定し、「許可」又は「規制」の判定結果を返す。なお、具体的な判定方法は、例えば特許第6259175号公報に記載されているものと同様であるため、ここでは説明を省略する。
ステップS52:CPU11は、URL判定処理の返り値が「許可」である場合には(ステップS52:Yes)、ステップS53に進む一方、返り値が「規制」である場合には(ステップS52:No)、ステップS56に進む。
ステップS53:CPU11は、続いてキーワード判定処理を実行する。キーワード判定処理では、CPU11は、ブラウザ40からウェブサーバWSに送信されようとしているデータ(リクエストのボディデータ)にユーザ(例えば、学校や企業等)が予め登録したキーワードが含まれているか否かに基づいて、アクセスを許可するか否かを判定し、「許可」又は「規制」の判定結果を返す。なお、キーワード判定処理の詳細な内容については、別の図面を参照しながら詳しく後述する。
ステップS54:CPU11は、キーワード判定処理の返り値が「許可」である場合には(ステップS54:Yes)、ステップS55に進む一方、返り値が「規制」である場合には(ステップS54:No)、ステップS56に進む。
ステップS55,S56:CPU11は、URL判定処理及びキーワード判定処理の両方の返り値が「許可」である場合には、問い合わせの送信元に対して「許可」を返す(ステップS55)。これに対し、URL判定処理又はキーワード判定処理の返り値が「規制」である場合には、問い合わせの送信元に対して「規制」を返す(ステップS56)。
以上の手順を終えると、CPU11は、フィルタリング判定処理を終了する。
なお、上記の手順例はあくまで一例であり、適宜変更が可能である。例えば、上記の手順例においては、URL判定処理の返り値が「許可」である場合にキーワード判定処理を実行しているが、これに代えて、先にキーワード判定処理を実行し、その返り値が「許可」である場合にURL判定処理を実行してもよい。また、URL判定処理及びキーワード判定処理の他に、さらなる判定処理を組み合わせて実行してもよい。
図6は、キーワード判定処理の手順例を示すフローチャートである。
キーワード判定処理は、フィルタリング判定処理の過程(図5中のステップS53)でフィルタリングサーバ10のCPU11により実行される。以下、手順例に沿って説明する。
ステップS61:CPU11は、リクエストのボディデータを所定のサイズ毎に分割して、N個の分割データを生成する。ここではCPU11は、ブラウザ40から分割して送られてくるデータを、処理し易い所定のサイズ毎にさらに分割する。結果として、リクエストのボディデータ全体がN個に分割される。なお、ボディデータのサイズが所定のサイズに満たない場合には、分割データは1つ(N=1)となる。
ステップS62,S63:CPU11は、ボディデータ全体における現在の位置を示す位置カウンタcに1をセットし(ステップS62)、最初の分割データである分割データ1をハッシュ化して、これをハッシュ化分割データ1とする(ステップS63)。
ハッシュ化分割データは、その元となった分割データを構成する文字数に応じた個数(文字数+1)の要素を持つ配列Hである。配列Hの各要素には、分割データを構成する各文字をハッシュ化した0以上の整数値(ハッシュ値)に基づいて算出された値がセットされる。具体的には、H[0]には固定値「1」がセットされ、H[k]には、分割データの先頭からk文字目までの各文字のハッシュ値に対し所定のビット数(例えば、8ビット)を確保して累積した値に基づく値、より具体的には、H[k-1]に所定値(例えば、256(=8ビットの最大値))を乗じた値と分割データのk番目の文字のハッシュ値との和を十分に大きい除数で割った剰余がセットされる。分割データをこのような態様で配列化しておくことにより、後述するマッチングに際して、分割データに含まれる任意の位置における任意の長さの部分文字列のハッシュ値を簡単な演算で容易に算出可能となる。なお、ハッシュ化は、独自に開発したアルゴリズム(ハッシュ関数)により行ってもよいし、一般的に知られたハッシュ関数を用いて行ってもよい。
続いて、ハッシュ化分割データ1を対象として、データ送信を規制するための個々のキーワードとのマッチングがなされる。図7は、キーワードリストの一例として、学校Aというユーザにより登録されたキーワードリストの一部を抜粋して示している。
データベース12には、ユーザにより予め登録された1以上のキーワードからなるキーワードリストが格納されている。学校Aのキーワードリストには、生徒や教員によるSNSや電子掲示板等への投稿を阻止すべきであると学校Aが判断した様々なキーワード(例えば、薬物や犯罪に関する言葉、暴力的な言葉、他者を誹謗中傷又は差別する言葉等)が登録されている。
マッチングを効率よく行えるよう、データベース12にはさらに、個々のキーワードをハッシュ化して得られた0以上の整数で表されるハッシュ化キーワードからなるハッシュ化キーワードリストが格納されている。なお、図7において、個々のハッシュ化キーワードの具体的な数値を示さず「‥‥‥」と略記しているが、キーワードが異なればハッシュ化キーワードは異なるものとなる。
また、図7に示されるように、日本語のキーワードに対しては、3種類の文字コード(Shift_JIS,EUC,UTF-8)でそれぞれハッシュ化したハッシュ化キーワードが格納されている。これにより、マッチングを行う際には、個々のキーワードをその都度ハッシュ化する必要がなく、リクエストのボディデータの文字コード(リクエストヘッダのcharset属性)に対応するハッシュ化キーワードをデータベース12から取得してそのままマッチングに用いることができる。
〔図6を参照〕
ステップS64:CPU11は、ユーザのハッシュ化キーワードリストからボディデータの文字コードに対応するキーワードを1つ選択し、このハッシュ化キーワードと直前のステップで得られたハッシュ化分割データとのマッチングを行う。マッチングにおいては、文字列が等しければそのハッシュ値も等しいということを前提に、直前のステップ(ステップS63、又は、ステップS72)で得られたハッシュ化データを対象として、ローリングハッシュの手法を用いて、選択されたハッシュ化キーワードと同一のハッシュ値をもつ文字列の検索がなされる。マッチングにおいてハッシュ化キーワードに一致する箇所が見つかれば、そのハッシュ化キーワードに対応するキーワードがハッシュ化される前のデータに含まれていることになる。なお、マッチングの具体例については、別の図面を用いてさらに後述する。
ステップS65~S67:CPU11は、選択したハッシュ化キーワードに一致した場合には(ステップS65:Yes)、「規制」を返し(ステップS66)、キーワード判定処理を終了して呼び出し元のフィルタリング判定処理に復帰する。
一方、選択したハッシュ化キーワードに一致しなかった場合には(ステップS65:No)、CPU11は、ハッシュ化キーワードリストに含まれる全てのキーワード(日本語のキーワードの場合は、ボディデータの文字コードに対応するハッシュ化キーワード)とのマッチングを行ったか否かを確認する(ステップS67)。未だマッチングを行っていないキーワードが残っている場合には(ステップS67:No)、CPU11は、ステップS64に戻り、未だマッチングを行っていないキーワードを選択してマッチングを行い、以降の手順を再度実行する。
これに対し、ハッシュ化キーワードリストに含まれる全てのキーワードとのマッチングを行った場合には(ステップS67:Yes)、CPU11は、ステップS68に進む。
ステップS68,S69:CPU11は、位置カウンタcの値が分割データの個数Nより小さい(c<Nである)か否かを確認する。c<Nである場合、すなわち未だマッチングの対象となっていない分割データが残っている場合には(ステップS68:Yes)、CPU11は、ステップS70に進む。一方、c=Nである場合、すなわち全ての分割データに対するマッチングが完了した場合には(ステップS68:No)、CPU11は、「許可」を返し(ステップS69)、キーワード判定処理を終了して呼び出し元のフィルタリング判定処理に復帰する。
ステップS70,S71:CPU11は、位置カウンタcに1を加算した上で(ステップS70)、分割データ(c)をハッシュ化し、これをハッシュ化分割データ(c)とする(ステップS71)。例えば、ステップS70においてc=2となった場合には、ステップS71において2番目の分割データである分割データ2がハッシュ化されてハッシュ化分割データ2が生成される。
ステップS72:CPU11は、ユーザのキーワードリストにおける最長のキーワードの文字数(以下、「最長文字数」と称する。)を確認し、ハッシュ化分割データ(c-1)、すなわち1つ前のハッシュ化分割データの末尾から最長文字数分のハッシュデータを取得して、ハッシュ化分割データ(c)の先頭に連結する。例えば、c=2の場合には、ハッシュ化分割データ1の末尾における最長文字数分のハッシュデータが、ハッシュ化分割データ2の先頭に連結される。その上で、CPU11は、このようにして得られたハッシュ化データを対象として、ステップS64以降の手順を繰り返し実行する。
以上のように、キーワード判定処理においては、リクエストのボディデータ全体における処理の対象とする位置を前方から後方へと徐々に移動させて、ユーザにより予め登録された個々のキーワードに対応するハッシュ化キーワードとのマッチングを行っていき、ハッシュ化キーワードに一致したらその時点で「規制」を返し、最後の位置までマッチングを行っていずれのハッシュ化キーワードにも一致しなかった場合に限り「許可」を返す。
なお、ハッシュ関数のシード値はフィルタリングサーバ10の起動毎に変更される。これに対応して、データベース12に格納されているハッシュ化キーワードリストも、フィルタリングサーバ10の起動毎に更新される。
図8は、キーワード判定処理の各段階でマッチングの対象となるハッシュ化データを説明する図である。
図8中(A)は、ブラウザ40からのリクエストのボディデータの一例を示している。図示の例においては、ボディデータが3つに分割されて分割データ1~3が生成されている。図中の「~~~」は、分割データを構成する文字の羅列を簡略的に示している。
図8中(B)は、図8中(A)に示された分割データ1~3で構成されるボディデータに対するキーワード判定処理において、各段階でマッチングの対象となるハッシュ化データを示している。図中の「‥‥‥」は、ハッシュ化データを簡略的に示している。
先ず、位置カウンタc=1のときには、ハッシュ化分割データ1がマッチングの対象となる。次に、c=2のときには、ハッシュ化分割データ1の末尾における最長文字数分のハッシュデータとハッシュ化分割データ2とを連結して得られるハッシュ化データがマッチングの対象となる。そして、c=3ときには、ハッシュ化分割データ2の末尾における最長文字数分の文字列とハッシュ化分割データ3とを連結して得られるハッシュ化データがマッチングの対象となる。
例えば、図7に示された学校Aのキーワードリストにおける最長のキーワードが10文字であると想定する。この場合、c=2のときには、ハッシュ化分割データ1の末尾部をなす10文字分のハッシュデータをハッシュ化分割データ2の先頭に連結したハッシュ化データがマッチングの対象となり、c=3のときには、ハッシュ化分割データ2の末尾部をなす10文字分のハッシュデータをハッシュ化分割データ3の先頭に連結したハッシュ化データがマッチングの対象となる。
図9は、キーワードが分割データ1に含まれている場合の例を示している。図9においては、ハッシュ化分割データにおけるキーワードに対応するデータ箇所に網掛けを施している(図10においても同様)。
例えば、リクエストのボディデータの文字コードが「Shift_JIS」であり、図7に示された学校Aのキーワードリストのうち、「パパ活」というキーワードが分割データ1に含まれている場合を想定する。キーワード判定処理(図6)の過程では、位置カウンタc=1のときに、ハッシュ化分割データ1とキーワード「パパ活」に対応する「Shift_JIS」のハッシュ化キーワードとのマッチングがなされる(図6中のステップS64)。
具体的には、ハッシュ化分割データ1の配列Hから、キーワード「パパ活」の文字数分だけ離れた位置にある2つの要素、すなわち3つ離れた2つの要素を用いて3文字分のハッシュ値が算出され、ハッシュ化キーワードと一致するか否かの確認がなされる。先ず、H[0]及びH[3]の値を用いて先頭から3文字分のハッシュ値が算出されてハッシュ化キーワードと一致するか否かの確認がなされ、一致しなければ、H[1]及びH[4]の値を用いて2文字目から3文字分のハッシュ値が算出されてハッシュ化キーワードと一致するか否かの確認がなされ、一致しなければ、H[2]及びH[5]の値を用いて3文字目から3文字分のハッシュ値が算出されてハッシュ化キーワードと一致するか否かの確認がなされ、‥‥という具合に、位置を1ずつ後方にずらして3文字分のマッチングが次々と行われていく。
そして、ハッシュ化分割データ1を対象としたマッチングの過程でハッシュ化キーワードに一致するため(図6中のステップS65:Yes)、判定結果として「規制」が返される(図6中のステップS66)。その結果、ブラウザ40からのウェブサーバWSに対するアクセスが規制されることとなる。
図10は、キーワードが分割データ1~2に跨っている場合の例を示す図である。
例えば、リクエストのボディデータの文字コードが「EUC」であり、図7に示された学校Aのキーワードリストのうち、「コカイン」というキーワードが分割データ1~2に跨っている場合を想定する。キーワード判定処理の過程(図6)では、ハッシュ化分割データとキーワード「コカイン」に対応する「EUC」のハッシュ化キーワードとのマッチングがなされる(図6中のステップS64)。
位置カウンタc=1のときには、ハッシュ化分割データ1の配列Hから、キーワード「コカイン」の文字数分だけ離れた位置にある2つの要素、すなわち4つ離れた2つの要素を用いて4文字分のハッシュ値が算出され、ハッシュ化キーワードと一致するか否かの確認がなされる。先ず、H[0]及びH[4]の値を用いて先頭から4文字分のハッシュ値が算出されてハッシュ化キーワードと一致するか否かの確認がなされ、一致しなければ、H[1]及びH[5]の値を用いて2文字目から4文字分のハッシュ値が算出されてハッシュ化キーワードと一致するか否かの確認がなされ、一致しなければ、H[2]及びH[6]の値を用いて3文字目から4文字分のハッシュ値が算出されてハッシュ化キーワードと一致するか否かの確認がなされ、‥‥という具合に、位置を1ずつ後方にずらして4文字分のマッチングが次々と行われていく。図10に示されるように、ハッシュ化分割データ1には、キーワード「コカイン」に対応する「EUC」のハッシュ化キーワードの一部(先頭の「コ」に対応するハッシュデータ)しか含まれていない。したがって、c=1のときには、ハッシュ化キーワードに一致しない。
c=2のときには、ハッシュ化分割データ1の末尾部とハッシュ化分割データ2とを連結したハッシュ化データを対象とし、その配列Hから、4つ離れた2つの要素を用いて4文字分のハッシュ値が算出され、上述したような態様により4文字分のマッチングが次々と行われていく。図10に示されるように、ハッシュ化分割データ1の末尾部には、ハッシュ化キーワードの一部(先頭の「コ」に対応するハッシュデータ)が含まれており、これに続くハッシュ化分割データ2の先頭部には、残りの部分(「カイン」に対応するハッシュデータ)が含まれている。
したがって、c=2のときに行われるマッチングの過程でハッシュ化キーワードに一致するため(図6中のステップS65:Yes)、判定結果として「規制」が返される(図6中のステップS66)。その結果、ブラウザ40からのウェブサーバWSに対するアクセスが規制されることとなる。
〔本発明の優位性〕
以上のように、上述した実施形態のウェブフィルタリングシステムによれば、以下のような効果が得られる。
(1)予め登録されたキーワードがリクエストのボディデータに含まれるか否かに基づいてアクセスを規制するか否かの判定がなされるため、ユーザ環境下の端末から不適切な情報が送信されるのを未然に防ぐことができる。
(2)判定に用いられるキーワードリストはユーザが自ら登録したものであるため、ユーザの意向に沿って「規制」又は「許可」の判定を下すことができ、個々のユーザが不適切と捉えるキーワード(ユーザ環境下から送信できないようにしたいキーワード)を含む情報の送信を確実に規制することができる。
(3)リクエストのボディデータを分割して生じる個々の分割データをハッシュ化したハッシュ化分割データと予め登録されたキーワードをハッシュ化したハッシュ化キーワードとのマッチングがローリングハッシュの手法を用いて行われるため、マッチングを高速に実行することができ、ハッシュ化しない文字列でマッチングを行う場合と比較して処理速度を上げることができる。
(4)ハッシュ化分割データ1~Nと個々のハッシュ化キーワードとのマッチングにおいて、2番目以降のハッシュ化分割データをマッチングの対象とする場合には、そのハッシュ化分割データ(例えば、ハッシュ化分割データ2)の先頭に、1つ前のハッシュ化分割データ(例えば、ハッシュ化分割データ1)の末尾から取得した最長キーワードの文字数分のハッシュデータが連結され、1つ前のハッシュ化分割データの末尾部もマッチングの対象に含まれるため、キーワードが2つの分割データに跨って存在している場合でも、その情報の送信を確実に規制することができる。
(5)キーワードリストに対応するハッシュ化キーワードリストがデータベース12に予め格納されていることから、マッチングを行う度に個々のキーワードをハッシュ化する必要がないため、その都度キーワードをハッシュ化する場合と比較してマッチングの効率を向上することができる。
本発明は、上述した実施形態に制約されることなく、種々に変形して実施することが可能である。
上述した実施形態においては、データベース12がフィルタリングサーバ10に設けられているが、データベースの設置場所はフィルタリングサーバ10上に限定されない。例えば、フィルタリングサーバ10が接続可能な別のサーバ上に設けてもよいし、異なるサーバ上に設けられた複数のデータベースを用途に応じて使い分けてもよい。或いは、キーワードリストやハッシュ化キーワードリストを、データベース12に代えてフィルタリングサーバ10上の設定ファイル等に格納してもよい。
上述した実施形態においては、フィルタリングサーバ10のユーザとして学校や企業等の団体を想定しているが、利用形態はこれに限定されない。例えば、個人をフィルタリングサーバ10のユーザとし、その個人の家庭環境下にある端末からウェブサーバWSにアクセスする際に、その個人が自ら設定したキーワードリストに基づいて通信の制御を行ってもよい。これにより、その個人の家族が不適切な情報を送信するのを未然に防ぐことができる。
その他、実施形態のウェブフィルタリングシステム1を説明する過程で挙げた構成や数値等は、あくまで一例であり、本発明の実施に際して適宜に変形が可能であることは言うまでもない。
1 ウェブフィルタリングシステム
10 フィルタリングサーバ
11 CPU (判定部)
12 データベース (記憶部)
20 プロキシサーバ
30 リダイレクトサーバ
40 ブラウザ
50 アプリケーション
60 ブラウザ拡張機能

Claims (2)

  1. ユーザにより予め登録された1以上のキーワードが格納された記憶部と、
    ウェブサーバに対するブラウザからのリクエストの規制に関する問い合わせを受け付けると、前記リクエストのボディデータに前記キーワードが含まれるか否かに基づいて判定を行い、前記問い合わせの送信元に判定結果を返す判定部と
    を備え
    前記判定部は、
    前記ボディデータを所定のサイズ毎に分割し、個々の分割データをハッシュ化して得られるハッシュ化分割データと前記キーワードをハッシュ化して得られるハッシュ化キーワードとのマッチングを行うことにより、前記ボディデータに前記キーワードが含まれるか否かを確認し、2番目以降のハッシュ化分割データをマッチングの対象とする場合には、当該ハッシュ化分割データの先頭に、1つ前のハッシュ化分割データの末尾部をなす、ユーザにより登録された最長のキーワードの文字数分のハッシュデータを連結することを特徴とするウェブフィルタリングシステム。
  2. 請求項に記載のウェブフィルタリングシステムにおいて、
    前記記憶部は、
    前記キーワード及びこれに対応する前記ハッシュ化キーワードが予め格納されていることを特徴とするウェブフィルタリングシステム。
JP2023220640A 2023-12-27 2023-12-27 ウェブフィルタリングシステム Active JP7498844B1 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2023220640A JP7498844B1 (ja) 2023-12-27 2023-12-27 ウェブフィルタリングシステム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2023220640A JP7498844B1 (ja) 2023-12-27 2023-12-27 ウェブフィルタリングシステム

Publications (1)

Publication Number Publication Date
JP7498844B1 true JP7498844B1 (ja) 2024-06-12

Family

ID=91377697

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2023220640A Active JP7498844B1 (ja) 2023-12-27 2023-12-27 ウェブフィルタリングシステム

Country Status (1)

Country Link
JP (1) JP7498844B1 (ja)

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006268303A (ja) 2005-03-23 2006-10-05 Nomura Research Institute Ltd 投稿データ評価装置
CN103186669A (zh) 2013-03-21 2013-07-03 厦门雅迅网络股份有限公司 关键词快速过滤方法
CN107040606A (zh) 2017-05-10 2017-08-11 上海上讯信息技术股份有限公司 用于处理http请求的方法与设备

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006268303A (ja) 2005-03-23 2006-10-05 Nomura Research Institute Ltd 投稿データ評価装置
CN103186669A (zh) 2013-03-21 2013-07-03 厦门雅迅网络股份有限公司 关键词快速过滤方法
CN107040606A (zh) 2017-05-10 2017-08-11 上海上讯信息技术股份有限公司 用于处理http请求的方法与设备

Similar Documents

Publication Publication Date Title
US9154493B2 (en) Managing multiple logins from a single browser
US9703885B2 (en) Systems and methods for managing content variations in content delivery cache
US7089246B1 (en) Overriding content ratings and restricting access to requested resources
US7856658B2 (en) Method and system for incorporating trusted metadata in a computing environment
US8489738B2 (en) Matching engine for comparing data feeds with user profile criteria
US7640296B2 (en) Mapping of a content request for a cache server
US7730081B2 (en) Searching based on messages
US7636777B1 (en) Restricting access to requested resources
US7308501B2 (en) Method and apparatus for policy-based packet classification using hashing algorithm
US8176185B2 (en) Method of switching Internet personas based on URL
US7293012B1 (en) Friendly URLs
US9819761B2 (en) Intelligent client cache mashup for the traveler
US20070156604A1 (en) Method and system for constructing and using a personalized database of trusted metadata
JP2003058535A (ja) 情報管理装置
EP2147379A1 (en) Combined personal and community lists
JP7498844B1 (ja) ウェブフィルタリングシステム
JP2007109237A (ja) データ検索システム、方法およびプログラム
US20020107986A1 (en) Methods and systems for replacing data transmission request expressions
US20020133604A1 (en) Instruction set file generation for online account aggregation
US20050278617A1 (en) Methods and systems for dynamically assembling web pages
WO2002023401A2 (en) A system and method for accessing web pages
US20020120631A1 (en) Taxonomic classification system and method

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20231227

A871 Explanation of circumstances concerning accelerated examination

Free format text: JAPANESE INTERMEDIATE CODE: A871

Effective date: 20231227

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20240220

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20240312

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20240521

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20240531

R150 Certificate of patent or registration of utility model

Ref document number: 7498844

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150