我々は時間のハッカーは、ハッカーがこの肖像画を好きに:孤独を、静かに他の人のサーバーに入ると、破壊したり、他の人の秘密を盗む傾向があると思うたびに。たぶん彼は我々のホームページを変更し、不正請求は、顧客のクレジットカード番号やパスワードを盗むされます。また、ハッカーは私達のウェブサイトのお客様を訪問する攻撃されます。同時に、私たちのサーバーは、彼の共犯者となった。マイクロソフトでは、"クロスサイトスクリプト"攻撃として、この攻撃を呼び出します。これらの攻撃の大半は、動的に生成されたWebページに適切なタイミングでも行われたハッカーの目標は、お客様のサイトへはないが、顧客のウェブサイトをご覧ください。
クロスサイトスクリプト攻撃の概要
本 ADVISORY CA--2000-02 を雑誌の権利は、CERTは私たちに警告:クライアントの入力サーバが効果的な検証ではない場合は、悪意のあるハッカーはいくつかのHTMLコードを入力しますが、これらのHTML SCRIPTスクリプトのプログラムコードの入力が、彼らはいくつかの攻撃画像や音などの挿入などの妨害を実施するが、それを使用してすることもできますお客様の権利のウェブサイトを妨害することができます使用されます。
我々は、いくつかの友人が不審なサイトの数を解放するために誘導されていた知っている、彼らは10〜20、小さなウィンドウを取得、これらのウィンドウは、しばしば、Javaまたはavascriptセキュリティボタンの故障の形成によって、これはマウストラップとしてknownです一緒に伴われる。ウィンドウを閉じるには無駄に、我々はウィンドウを閉じると、別のウィンドウが開く数10ポップアップ表示されます。これはしばしば起こるとき、管理者侯Fashengいないでした。ハッカーは、マウスイベントを使用して、顧客のクロスサイト攻撃手法スクリプトの例です。
SCRIPTタグと悪質ないたずらは、単純な、彼らも情報を盗むことができるし、システムを破壊されていません。または賢いもスマートハッカーが妨害したり、サーバースクリプトのデータ入力を使用して変更できるわけではです。スクリプトコードは、クライアントシステムを使って、ハードドライブへの損傷を行う攻撃することができます。そして、あなたは、ときにサーバー側を使用している、ハッカーのSCRIPTまた、サーバーが実行されて安全な場所です!お客様は、サーバー上の文字識別される場合は、同じ確信彼らは悪意のあるコードをスクリプトします。さらに、このコードは、ハッカーからの SCRIPT やの OBJECT サーバーの形式です。
ファイアウォール(SSL)をクロスサイト攻撃を防ぐことはできないのSCRIPTでも。つまり、装置はまた、SSLを、私たちはコードを識別することはできませんSSLサーバーを使用悪質なスクリプトコードを生成する場合だ。我々は、顧客とのサイトをしてハッカーそれを降伏信頼しなければならない?そして、そのような損害の存在が、評判の可能性の損失をあなたのサイトを確認します。
まず、クロスサイト攻撃の例のスクリプト:
CERTの情報によると、ダイナミック入力は一般的にこれらのフォームを:URLパラメータ、フォーム要素COOKISEとデータを要求しています。私たちは、ウェブサイトの唯一の2つのページを分析しようが、Webサイトの名前は:MYNICESITE.COM。最初のユーザー名を取得するフォームまたはCookieを使用して:
%@言語= VBScriptの%の
はRequest.Cookies("userNameの場合 %") ""その後、
薄暗いstrRedirectUrl
strRedirectUrl ="Page2.aspは?userNameの="
strRedirectUrl = strRedirectUrl&のResponse.Cookies("username"という)
Response.Redirectを(strRedirectUrl)
他の%の
します。 HTML
の HEAD
の TITLE MyNiceSite.comホームページ /タイトル
/ HEADの
の BODY
H2 MyNiceSite.com / H2の
FORM Method="post" action="page2.asp"
あなたのMyNiceSite.comのユーザ名を入力してください:
INPUT Type="text" name="userName"
INPUT Type="submit" name="submit" value="submit"
/フォームの
/ BODYの
/ HTML形式
%のエンド場合、%
2ページ目を返しますユーザー名歓迎する:
%@言語= VBScriptの%の
の%暗いgstrUserNameに
場合場合、Request.QueryString("ユーザ名") ""それから
gstrUserNameに=の場合、Request.QueryString("ユーザ名")
エルス
のResponse.Cookies("ユーザ名")= Request.Formを("ユーザ名")
gstrUserNameに= Request.Formを("ユーザ名")
エンド場合、%
します。 HTML
の HEAD / HEADの
の BODY
h3はHello Align="center" : %を= gstrUserNameに% / H3の
/ BODYの
/ HTML形式
するときにテキストを通常の入力が多い、すべてが正常です。あなたがスクリプトコード:の SCRIPT 警告(''こんにちは.''; /スクリプト 入力した場合、avascript警告ラベルがポップアップ表示されます:
次回は、この警告ラベルが同じ表示されます参照してください、最初の訪問の後あなたの時間のスクリプトコードがクッキーにとどまることをされていたので、これが。これは、クロスサイト攻撃の簡単な例です。
これは特殊なケースだと思う場合は、また、他のオンライン、人試しに見てよいでしょう。 、私も私は頻繁にクレジットカードを使用するサイトを見つけたもの状況は私が彼らの一部はよりを行うにはいくつかの大きな政府のサイトを、教育サイト、商業サイトテスト持つ実際に入力なしに任意のフィルタリング、本当にひどい考えてください。
第二に、クロスサイトスクリプト攻撃に電子メールを使用して
クロスサイトスクリプト攻撃がリストサーバー、Usenetのサーバーとメールサーバーで使用される、特に来て脆弱です。以下に例をMyNiceSite.comサイトを説明することです。多くの場合、このサイトを閲覧して以来、コンテンツがあなたを愛してダウンするので、無意識のうちに、動的なWebコンテンツには常にこの設定を信頼しているブラウザを入れ、それを入れていません。
MyNiceSite.comサイトは、常にサブスクリプションの販売電子メールによるその電子メールの文字のアドレスを確かに非常に良い考えです所得を取得することです。だから私は、メールボックスのアドレスにそれを買った。そして、あなたにメールをたくさんした。手紙の中で、私はあなたが、できるだけ早くこのサイトを訪問し、最新の状況を使用してアカウントを確認教えてください。あなたに便利を与えるために、私もこの手紙へのリンクを作りました。私はURLをリンクすると、スクリプトコード内でユーザ名のパラメータを追加なめるする。このリンクを知らずにクリックして(写真私の時には一部の顧客)、私も恩恵を受けて:
それはこの作品は、スクリプトのコードへのリンク後に、このリンクしたときには、クリックと私avascriptプログラムをダウンロードし、それを実行するあなたのブラウザをご案内するために使用されます。あなたに私のスクリプトのチェックは、IEブラウザを使用して、ActiceX制御particularlyNasty.dllをダウンロードするに進みます。あなたので、あなたのマシン私のスクリプトコードおよびActiveコントロールの自由を実行することができます常に安全ですこのウェブサイトのコンテンツがあるので前に。
3は、ActiveX攻撃の説明
リスクによってもたらされるのがActiveXコントロールを、CERT、およびマイクロソフトの参照論じるべきには、クロスサイトスクリプトメソッド。 W3Cのでは""セキュリティがよく は ActiveXのセキュリティ、詳細な説明を与えたの質問に質問。システムの制御上のJavaアプレットが厳しく制限されます。日の開発それは人だけのシステムのセキュリティへの脅威をもたらす操作を実行できるようになった提供しています。
一方、ActiveXは、システムの動作を厳密に限定されません。 1つはダウンロードされている場合は、のように彼らが同じことをやってみたかったか実行可能ファイルをインストールできます。この機能のためにIEのブラウザはまた、これらの安全サイトなど、特定の制限を、デフォルトの設定で、をダウンロードしたりするに警告をプロンプトを与える許可されません行われます。日本ベリサイン株式会社のような企業のActiveXの開発に基づいて、彼らはActiveXコントロールを番号与えている。いつの時間コントロールの後に、IEブラウザを使用すると、その信頼性の悪党の度合いを警告して表示を与えるダウンロードします。ユーザ別かどうか、このコントロールを信じることにした。システムのセキュリティが増加するにつれて。
しかし、多くの経験を持っていないユーザーのために、彼らはしばしば無意識のうちに、元の設定にすることなく、これらのコントロールを許可するように変更されたすべてのメッセージを表示ダウンロードされます。プロンプトの場合でも、また、初心者、思考することなくマークをすることはありませんダウンロードして、どのコントロールします。私たちの例では、あなたは、ブラウザの設定を変更するサイトを信頼するため、これは、ActiveXなしでお使いのマシンすべてをダウンロードするように求めると、知らず知らずのコントロール実行を開始します。
4、16進数では、ActiveXスクリプト攻撃をエンコード
悪い意図は、ラベルとスクリプトを区別すべきは非常に困難です。スクリプトは、16進数の形式で自分自身を非表示にすることができます。私たちは、次の電子メールこの例でください見てみましょう?これは、16進数の形式で送信されます:
これは、16進のURLパラメータを偽造:送信= mynicesite.com含まれているほぼ完全なメッセージです。ユーザーが最初のケースを直接開くの処理ウィンドウを警告するという開始されますリンクを、ユーザーのブラウザをクリックします。
パーツは2:クロスサイトスクリプト攻撃の犯罪防止
まず、どのようにスクリプトクロスサイトサーバーの攻撃を避けるため
幸いにも、予防クロスサイトスクリプティング攻撃スクリプト技術が完成です。これはスクリプトクロスサイトスクリプティング攻撃を防ぐために撮影することができますいくつかの方法:
1。で動的に生成されるページの文字をエンコードされます
2。フィルタを適用すると入力を制限する
3。HTMLとURLのエンコードを使用
1。で動的に生成されるページの文字をエンコードされます
あなたが最初に動的に文字エンコーディングのページを生成される使用する必要が、あなたはそれをしなければならないか、ハッカーは、防衛のあなたの行を簡単を通して、あなたの文字セットを変更する可能性があります。当サイトは英語のウェブサイトにある場合、私たちが文字をラテン文字のISO - 8859 - 1にラインでエンコード設定した場合、次のように:
META Http-equiv="Content-Type" content="text/html;charset=ISO-8859-1"
2。フィルタと制限すべての入力データ
これは、記号に攻撃の第2の方法は、スクリプトクロスサイトスクリプティングを防ぐためにインチこれらの特殊文字が入力されてはいけないです。したがって、我々は、onSubmit方法この機能を達成するためにavascript手続きを追加できます。この例では、我々はわずか15文字を入力することができます制限されます。これは、これらの長いスクリプトの入力を防止します。
Knowledge技術情報の記事QA252985 でこの本は簡単なMicrosoftのavascriptプログラムを入力データのフィルタリング完了を提供します。また、私たちの例など、このコードの特定の状況下で導入:
関数checkForm()(
document.forms [0]と。userName.valueを= _
RemoveBad()はUserName.value [0]をdocument.forms;
trueを返します。
)
/ / MICROSOFT'コードを示します。
関数RemoveBad(strTemp)(
strTemp = strTemp.replaceの(/ / /"/''/%/;/(/)/&/+/-/ ,""); gの
戻りstrTemp;
)
このメソッドを使用して、それらを入力文字に含まれてフィルタリングすることができます:
% []();&+ - "''()
3。HTMLとURLのエンコードを使用
フィルタと制限上記の使用は、入力メソッドは、防衛の非常に重要な手段を使うことですが、それはメールまたは無力でこのような攻撃の私の方法でした。私が直接メッセージにURLパラメータを置く。この私たちは、より堅牢なセキュリティ対策を取らなければならないのビューで。我々は非常に簡単解決するためにASPを、相対的に使用する場合、。限りの行に、動的に生成されたHTMLページとURLエンコードの合計です。この例の場合は、リダイレクトURL、我々は、次の変更を行った最初のページを入力してください:
strRedirectUrl = strRedirectUrl&_
Server.URLEncodeによって(のResponse.Cookies("username"という))
我々は、このページの実装に参加:
gstrUserNameに=でServer.HTMLEncode(場合、Request.QueryString("ユーザ名"))
と
gstrUserNameに=でServer.HTMLEncode(Request.Formを("ユーザ名"))
マイクロソフトでは、すべての入力および動的なページの出力エンコードする必要がありますお勧めします。データベースにもデータと同じものを削除の条件に該当する必要があります。そうすることは、主にクロスサイトスクリプト攻撃を避けることができます。
これらはPage1.aspをに追加する必要があります達成するために:
%@言語= VBScriptの%の
はRequest.Cookies("userNameの場合 %") ""その後、
''リダイレクトクッキーを検出した場合
薄暗いstrRedirectUrl
strRedirectUrl ="Page2.aspは?userNameの="
strRedirectUrl = strRedirectUrl&_
Server.URLEncodeによって(はRequest.Cookies("username"という))
Response.Redirectを(strRedirectUrl)
他の%の
します。 HTML
の HEAD
META Http-equiv="Content-Type"content="text/html; charset=ISO-8859-1"
の TITLE MyNiceSite.comホームページ /タイトル
/ HEADの
SCRIPT LANGUAGE="avascript"
! -
関数checkForm()(
document.forms [0]と。userName.valueを=
RemoveBad()はUserName.value [0]をdocument.forms;
trueを返します。
)
ファイル//*********************************************** *******
ファイル/ etc /プログラマ:オリジナルは、コードではありません - 時からマイクロソフト
ファイル/ etc /コードソース:Microsoft Knowledge Baseの記事Q25z985
ファイル/ etc /概要:削除不正な文字。
ファイル//*********************************************** *******
関数RemoveBad(strTemp)(
strTemp = strTemp.replaceの(/ / /"/''/%/;/(/)/&/+/-/のg、"");
戻りstrTemp;
)
//-- ファイル
/ SCRIPT の
の BODY
BR
H2 MyNiceSite.com / H2の
BR
FORM Method="post"action="page2.asp"のonsubmit="returnのcheckForm();"
あなたのMyNiceSite.comのユーザ名を入力してください:
INPUT Type="text"name="userName" width="10" maxwidth="10"
INPUT Type="submit"name="submit" value="submit"
/フォームの
/ BODYの
/ HTML形式
%のエンド場合%の
Page2.aspはカナダなど:
%@言語= VBScriptの%の
の%暗いgstrUserNameに
場合場合、Request.QueryString("userNameが") ""その後
gstrUserNameに=でServer.HTMLEncode(場合、Request.QueryString("ユーザ名"))
エルス
のResponse.Cookies("ユーザ名")= Request.Formを("ユーザ名")
gstrUserNameに=でServer.HTMLEncode(Request.Formを("ユーザ名"))
エンド場合、%
します。 HTML
の HEAD
META Http-equiv="Content-Type" content="text/html;charset=ISO-8859-1"
/ HEADの
の BODY
h3はHello Align="center" : %を= gstrUserNameに% / H3の
/ BODYの
/ HTML形式
今、この攻撃のための効果的な制御された。それはこれらのラベルは、スクリプト悪質なコードによって、彼らは書面での利用は、次に示すように浮上している:
また、IISコンポーネントをすべての特殊文字から、ダイナミック入力のフィルタリングするために使用増やします。善行のウェブサイトを持って、このアプローチは、クロスサイトスクリプト攻撃を防ぐために簡単に来る。私たちは、Cookieを形成することがASPページからこのコントロールのリクエストの目標をブロックすることが、要求文字列と手続の内容を検出する:
また、統計データのメソッドを介してコンポーネントに参加するログファイルを書き込むことができます。顧客は不正な文字を入力してたびに、このコンポーネントは、そのIPアドレスと時間の注意事項をします。詳細はダグディーン Rollあなた自身のIISアプリケーションのASPToday 記事にあります。
私達はちょうど効果的に、クロスサイトスクリプト攻撃を防ぐことができるいくつかの簡単Bujuを取る必要があります。上記の3つの方法とは別に、MicrosoftおよびCERTも強く、彼らは"健全性チェック"アプローチと呼ばれるプロセスを使用することをお勧めします。たとえば、唯一のデジタル入力ウィンドウの入力を許可であると、我々はそれを与えることに限ることのみ0-9デジタル入力。 MicrosoftおよびCERTは、特殊文字をフィルタリングの別の使用よりも、この限られたアプローチの文字を入力するために使用より優れています。これらの措置を採用すると、人顧客が保護されるようにサイトを参照してくださいあなたのサイトを訪れることができます。
第二に、ハッカーからの私たちのブラウザのメソッドを攻撃する:
適切なタイミング方法されて攻撃を回避するにするときにネットサーフィンですか? MicrosoftおよびCERTは、オンライン胡野生推測に触れないようにお勧めします。このビューでは、PC Magazine誌は、ジョンDvorack列興味深い答えて名前。彼はマイクロソフト社の計画的な行為ですこれを考えている:それは、これらのサイト安全にネットサーフィンは、AOLとMSN.comのWebサイトなどを訪問する人々を威圧することです。
私たちの例では、場合でも、放浪ランダムにオンラインではなく、我々はインターネットのハッカー攻撃に避けることはできません。皮肉なことに、リスクのほとんどは我々の最も信頼済みサイトから来ている。する必要がありますが質問サイトをしたい場合は、任意の動的なコンテンツ、またはCookieをダウンロードしないでくださいする必要があります。予測の詳細は、お使いのブラウザの情報を参照してください。
Microsoftはまた、ブラウザを使用するとアクティブスクリプトを設定する必要が厳密にメールの状態を制限するためにも厳密に受信モードに制限するために設定されて警告した。メッセージ内のリンクをクリックし、注意してください。詳細については、名前 Microsoft''s Knowledge Baseの記事Q253117 の書籍を参照してください。予防策として、あなたはより少しのオンライン経験と時間を注意するはずだ。
結論
以前のUNIXプログラム開発者の場合は、何がクロスサイトスクリプトを意味を知っていないことがあります。あなたは、多くのサイト管理者はユーザー名とパスワードのルートは、ルートが1回記録知っている。データベース管理者名とパスワードと同じ数のは、sa、パスワードされた。あなたはPhrackとAlt2600など)、彼らはあなたに一歩一歩を提供する方法に応じてバックURLを知る(サーバーの弱点を知ることができます。このハードウェアでは、また、サイトデータベースサーバーとWebサーバーの多くは、自己保護されていません知っている。しかし、ハッカーの経験は、マシンが必要麻痺。
それは簡単にハッカー対策からシステムを防止するためにですが、中に我々のシステムは、ハッカーの前にされている公開されます。我々はあらゆる理由が、来年いくつかの新しいセキュリティ上の脆弱されると信じてする必要があります。ミスタージョンハワードは、CERTの会社指導の下での資料に記載されています:"本研究では、平年のインターネットサイト上の各ドメイン名によると、ハッカーによる攻撃、少なくとも1回。 "
サーバーでは、たとえ1つだけこのような攻撃に耐えられません。クロスサイトスクリプト攻撃は別の方法のハッカーを使用することができますされます。しかし、私たちは、この形式の攻撃の発生を防ぐことができる上記の簡単な治療が必要です。
我々は時間のハッカーは、ハッカーがこの肖像画を好きに:孤独を、静かに他の人のサーバーに入ると、破壊したり、他の人の秘密を盗む傾向があると思うたびに。たぶん彼は我々のホームページを変更し、不正請求は、顧客のクレジットカード番号やパスワードを盗むされます。また、ハッカーは私達のウェブサイトのお客様を訪問する攻撃されます。同時に、私たちのサーバーは、彼の共犯者となった。マイクロソフトでは、"クロスサイトスクリプト"攻撃として、この攻撃を呼び出します。これらの攻撃の大半は、動的に生成されたWebページに適切なタイミングでも行われたハッカーの目標は、お客様のサイトへはないが、顧客のウェブサイトをご覧ください。
クロスサイトスクリプト攻撃の概要
本 ADVISORY CA--2000-02 を雑誌の権利は、CERTは私たちに警告:クライアントの入力サーバが効果的な検証ではない場合は、悪意のあるハッカーはいくつかのHTMLコードを入力しますが、これらのHTML SCRIPTスクリプトのプログラムコードの入力が、彼らはいくつかの攻撃画像や音などの挿入などの妨害を実施するが、それを使用して、顧客の右のウェブサイトを妨害することができます使用されます。
我々は、いくつかの友人が不審なサイトの数を解放するために誘導されていた知っている、彼らは10〜20の小さなウィンドウを取得は、これらのウィンドウは、しばしば、Javaまたはavascriptセキュリティボタンの故障の形成によって、これはマウストラップとして知られて一緒に伴われる。ウィンドウを閉じるには無駄に、我々はウィンドウを閉じると、別のウィンドウが開く数10ポップアップ表示されます。これはしばしば起こるとき、管理者侯Fashengいないでした。ハッカーは、マウスイベントを使用して、顧客のクロスサイト攻撃手法スクリプトの例です。
SCRIPTタグと悪質ないたずらは、単純な、彼らも情報を盗むことができるし、システムを破壊されていません。しないか、あるいは巧妙にもスマートハッカーが妨害したり、サーバースクリプトのデータ入力を使用して変更が可能です。スクリプトコードは、クライアントシステムを使って、ハードドライブへの損傷を行う攻撃することができます。そして、あなたは、ときにサーバー側を使用している、ハッカーのSCRIPTまた、サーバーが実行されて安全な場所です!お客様は、サーバー上の文字識別される場合は、同じ確信彼らは悪意のあるコードをスクリプトします。さらに、このコードは、ハッカーからの SCRIPT やの OBJECT サーバーの形式です。
ファイアウォール(SSL)をクロスサイト攻撃を防ぐことはできないのSCRIPTでも。つまり、装置はまた、SSLを、私たちはコードを識別することはできませんSSLサーバーを使用悪質なスクリプトコードを生成する場合だ。私たちは顧客とし、ハッカーの上に手を信頼済みサイトしなければならないの?そして、そのような損害の存在が、評判の可能性の損失をあなたのサイトを確認します。
まず、クロスサイト攻撃の例のスクリプト:
CERTの情報によると、ダイナミック入力は一般的にこれらのフォームを:URLパラメータ、フォーム要素COOKISEとデータを要求しています。私たちは、ウェブサイトの唯一の2つのページを分析しようが、Webサイトの名前は:MYNICESITE.COM。最初のユーザー名を取得するフォームまたはCookieを使用して:
%@言語= VBScriptの%の
はRequest.Cookies("userNameの場合 %") ""その後、
薄暗いstrRedirectUrl
strRedirectUrl ="Page2.aspは?userNameの="
strRedirectUrl = strRedirectUrl&のResponse.Cookies("username"という)
Response.Redirectを(strRedirectUrl)
他の%の
します。 HTML
の HEAD
の TITLE MyNiceSite.comホームページ /タイトル
/ HEADの
の BODY
H2 MyNiceSite.com / H2の
FORM Method="post" action="page2.asp"
あなたのMyNiceSite.comのユーザ名を入力してください:
INPUT Type="text" name="userName"
INPUT Type="submit" name="submit" value="submit"
/フォームの
/ BODYの
/ HTML形式
%のエンド場合、%
2ページ目を返しますユーザー名歓迎する:
%@言語= VBScriptの%の
の%暗いgstrUserNameに
場合場合、Request.QueryString("ユーザ名") ""それから
gstrUserNameに=の場合、Request.QueryString("ユーザ名")
エルス
のResponse.Cookies("ユーザ名")= Request.Formを("ユーザ名")
gstrUserNameに= Request.Formを("ユーザ名")
エンド場合、%
します。 HTML
の HEAD / HEADの
の BODY
h3はHello Align="center" : %を= gstrUserNameに% / H3の
/ BODYの
/ HTML形式
するときにテキストを通常の入力が多い、すべてが正常です。あなたがスクリプトコード:の SCRIPT 警告(''こんにちは.''; /スクリプト 入力した場合、avascript警告ラベルがポップアップ表示されます:
次回は、この警告のラベルが同じ表示を訪れたら、最初の訪問の後あなたの時間のScriptコードはクッキーにとどまることをされていたので、これはis。これは、クロスサイト攻撃の簡単な例です。
これは特殊なケースだと思う場合は、また、他のオンライン、人試しに見てよいでしょう。 、私も私は頻繁にクレジットカードを使用してサイトを見つけたもの状況は私が彼らの一部はよりを行ういくつかの大きな政府のサイトを、教育サイトや商業サイト、テスト、して実際に入力せずにいるすべてのフィルタリング、本当にひどい考えてください。
第二に、クロスサイトスクリプト攻撃に電子メールを使用して
クロスサイトスクリプト攻撃がリストサーバー、Usenetのサーバーとメールサーバーで使用される、特に来て脆弱です。以下に例をMyNiceSite.comサイトを説明することです。あなたが頻繁にこのサイトを閲覧するので、その内容は、あなたを愛しダウンので、あなたは無意識のうちに、動的なWebコンテンツには常にこの設定を信頼しているブラウザを入れ、それをというわけだ。
MyNiceSite.comサイトは、常にサブスクリプションの販売電子メールによるその電子メールの文字のアドレスを確かに非常に良い考えです所得を取得することです。だから私は、メールボックスのアドレスにそれを買った。そして、あなたにメールをたくさんした。手紙の中で、私はあなたが、できるだけ早くこのサイトを訪問し、最新の状況を使用してアカウントを確認教えてください。あなたに便利を与えるために、私もこの手紙へのリンクを作りました。私はURLをリンクすると、スクリプトコード内でユーザ名のパラメータを追加なめるする。このリンクを知らずにクリックして(写真私の時には一部の顧客)、私も恩恵を受けて:
それはこの作品は、スクリプトコード内でリンクの後にこのリンクをクリックしたときに、私のavascriptプログラムをダウンロードし、それを実行するブラウザをご案内するために使用されます。あなたに私のスクリプトのチェックは、IEブラウザを使用して、ActiceX制御particularlyNasty.dllをダウンロードするに進みます。あなたので、あなたのマシン私のスクリプトコードおよびActiveコントロールの自由を実行することができます常に安全ですこのウェブサイトのコンテンツがあるので前に。
3は、ActiveX攻撃の説明
リスクによってもたらされるのがActiveXコントロールを、CERT、およびマイクロソフトの参照論じるべきには、クロスサイトスクリプトメソッド。 W3Cのでは""セキュリティがよく は ActiveXのセキュリティ、詳細な説明を与えたの質問に質問。システムの制御上のJavaアプレットが厳しく制限されます。日の開発それは人だけのシステムのセキュリティへの脅威をもたらす操作を実行できるようになった提供しています。
一方、ActiveXは、システムの動作を厳密に限定されません。 1つはダウンロードされている場合は、のように彼らが同じことをやってみたかったか実行可能ファイルをインストールできます。この機能のIEブラウザは、これらの安全サイトなど一定の制限には、デフォルト設定では、ダウンロードしたり、あなたに警告をプロンプトを許可されません行われます。日本ベリサイン株式会社のような企業のActiveXの開発に基づいて、彼らはActiveXコントロールを番号与えている。いつの時間コントロールの後に、IEブラウザを使用すると、その信頼性の悪党の度合いを警告して表示を与えるダウンロードします。ユーザ別かどうか、このコントロールを信じることにした。システムのセキュリティが増加するにつれて。
しかし、多くの経験を持っていないユーザーのために、彼らはしばしば無意識のうちに、元の設定にすることなく、これらのコントロールを許可するように変更されたすべてのメッセージを表示ダウンロードされます。プロンプトの場合でも、また、初心者、思考することなくマークをすることはありませんダウンロードして、どのコントロールします。あなたがサイトを信頼としての例では、引用ブラウザの設定を、浙江省ヤン変更すると、ActiveXコントロールはいずれの場合も夏プロンプトにダウンロードされることが、マシンニッケルデシャンされていないが無意識のうちに実行して開始。
4、16進数では、ActiveXスクリプト攻撃をエンコード
悪い意図は、ラベルとスクリプトを区別すべきは非常に困難です。スクリプトは、16進数の形式で自分自身を非表示にすることができます。私たちは、次の電子メールこの例でください見てみましょう?これは、16進数の形式で送信されます:
これは、16進のURLパラメータを偽造:送信= mynicesite.com含まれているほぼ完全なメッセージです。ユーザーが最初のケースを直接開くの処理ウィンドウを警告するという開始されますリンクを、ユーザーのブラウザをクリックします。
パーツは2:クロスサイトスクリプト攻撃の犯罪防止
まず、どのようにスクリプトクロスサイトサーバーの攻撃を避けるため
幸いにも、予防クロスサイトスクリプティング攻撃スクリプト技術が完成です。これはスクリプトクロスサイトスクリプティング攻撃を防ぐために撮影することができますいくつかの方法:
1。で動的に生成されるページの文字をエンコードされます
2。フィルタを適用すると入力を制限する
3。HTMLとURLのエンコードを使用
1。で動的に生成されるページの文字をエンコードされます
あなたが最初に動的に文字エンコーディングのページが生成される使用する必要が、あなたはそれをしなければならないか、ハッカーは、防衛のあなたの行を簡単を通して、あなたの文字セットを変更する可能性があります。当サイトは英語のウェブサイトにある場合、私たちが文字をラテン文字のISO - 8859 - 1にラインでエンコード設定した場合、次のように:
META Http-equiv="Content-Type" content="text/html;charset=ISO-8859-1"
2。フィルタと制限すべての入力データ
これは、記号に攻撃の第2の方法は、スクリプトクロスサイトスクリプティングを防ぐためにインチこれらの特殊文字が入力されてはいけないです。したがって、我々は、onSubmit方法この機能を達成するためにavascript手続きを追加できます。この例では、我々はわずか15文字を入力することができます制限されます。これは、これらの長いスクリプトの入力を防止します。
Knowledge技術情報の記事QA252985 でこの本は簡単なMicrosoftのavascriptプログラムを入力データのフィルタリング完了を提供します。また、私たちの例など、このコードの特定の状況下で導入:
関数checkForm()(
document.forms [0]と。userName.valueを= _
RemoveBad()はUserName.value [0]をdocument.forms;
trueを返します。
)
/ / MICROSOFT'コードを示します。
関数RemoveBad(strTemp)(
strTemp = strTemp.replaceの(/ / /"/''/%/;/(/)/&/+/-/ ,""); gの
戻りstrTemp;
)
このメソッドを使用して、それらを入力文字に含まれてフィルタリングすることができます:
% []();&+ - "''()
3。HTMLとURLのエンコードを使用
フィルタと制限上記の使用は、入力メソッドは、防衛の非常に重要な手段を使うことですが、それはメールまたは無力でこのような攻撃の私の方法でした。私が直接メッセージにURLパラメータを置く。この私たちは、より堅牢なセキュリティ対策を取らなければならないのビューで。我々は非常に簡単解決するためにASPを、相対的に使用する場合、。限りの行に、動的に生成されたHTMLページとURLエンコードの合計です。この例の場合は、リダイレクトURL、我々は、次の変更を行った最初のページを入力してください:
strRedirectUrl = strRedirectUrl&_
Server.URLEncodeによって(のResponse.Cookies("username"という))
我々は、このページの実装に参加:
gstrUserNameに=でServer.HTMLEncode(場合、Request.QueryString("ユーザ名"))
と
gstrUserNameに=でServer.HTMLEncode(Request.Formを("ユーザ名"))
マイクロソフトでは、すべての入力および動的なページの出力エンコードする必要がありますお勧めします。データベースにもデータと同じものを削除の条件に該当する必要があります。そうすることは、主にクロスサイトスクリプト攻撃を避けることができます。
これらはPage1.aspをに追加する必要があります達成するために:
%@言語= VBScriptの%の
はRequest.Cookies("userNameの場合 %") ""その後、
''リダイレクトクッキーを検出した場合
薄暗いstrRedirectUrl
strRedirectUrl ="Page2.aspは?userNameの="
strRedirectUrl = strRedirectUrl&_
Server.URLEncodeによって(はRequest.Cookies("username"という))
Response.Redirectを(strRedirectUrl)
他の%の
します。 HTML
の HEAD
META Http-equiv="Content-Type"content="text/html; charset=ISO-8859-1"
の TITLE MyNiceSite.comホームページ /タイトル
/ HEADの
SCRIPT LANGUAGE="avascript"
! -
関数checkForm()(
document.forms [0]と。userName.valueを=
RemoveBad()はUserName.value [0]をdocument.forms;
trueを返します。
)
ファイル//*********************************************** *******
ファイル/ etc /プログラマ:オリジナルは、コードではありません - 時からマイクロソフト
ファイル/ etc /コードソース:Microsoft Knowledge Baseの記事Q25z985
ファイル/ etc /概要:削除不正な文字。
ファイル//*********************************************** *******
関数RemoveBad(strTemp)(
strTemp = strTemp.replaceの(/ / /"/''/%/;/(/)/&/+/-/のg、"");
戻りstrTemp;
)
//-- ファイル
/ SCRIPT の
の BODY
BR
H2 MyNiceSite.com / H2の
BR
FORM Method="post"action="page2.asp"のonsubmit="returnのcheckForm();"
あなたのMyNiceSite.comのユーザ名を入力してください:
INPUT Type="text"name="userName" width="10" maxwidth="10"
INPUT Type="submit"name="submit" value="submit"
/フォームの
/ BODYの
/ HTML形式
%のエンド場合%の
Page2.aspはカナダなど:
%@言語= VBScriptの%の
の%暗いgstrUserNameに
場合場合、Request.QueryString("userNameが") ""その後
gstrUserNameに=でServer.HTMLEncode(場合、Request.QueryString("ユーザ名"))
エルス
のResponse.Cookies("ユーザ名")= Request.Formを("ユーザ名")
gstrUserNameに=でServer.HTMLEncode(Request.Formを("ユーザ名"))
エンド場合、%
します。 HTML
の HEAD
META Http-equiv="Content-Type" content="text/html;charset=ISO-8859-1"
/ HEADの
の BODY
h3はHello Align="center" : %を= gstrUserNameに% / H3の
/ BODYの
/ HTML形式
今、この攻撃のための効果的な制御された。それはこれらのラベルは、スクリプト悪質なコードによって、彼らは書面での利用は、次に示すように浮上している:
また、IISコンポーネントをすべての特殊文字から、ダイナミック入力のフィルタリングするために使用増やします。善行のウェブサイトを持って、このアプローチは、クロスサイトスクリプト攻撃を防ぐために簡単に来る。私たちは、Cookieを形成することがASPページからこのコントロールのリクエストの目標をブロックすることが、要求文字列と手続の内容を検出する:
また、統計データのメソッドを介してコンポーネントに参加するログファイルを書き込むことができます。顧客は不正な文字を入力してたびに、このコンポーネントは、そのIPアドレスと時間の注意事項をします。詳細はダグディーン Rollあなた自身のIISアプリケーションのASPToday 記事にあります。
私達はちょうど効果的に、クロスサイトスクリプト攻撃を防ぐことができるいくつかの簡単Bujuを取る必要があります。上記の3つの方法とは別に、MicrosoftおよびCERTも強く、彼らは"健全性チェック"アプローチと呼ばれるプロセスを使用することをお勧めします。例如,假设有个输入窗口只允许输入数字,我们就给它做个限定,只允许0-9数字的输入。微软和CERT所采用的这种对输入的字符进行限定的办法要比单独的采用过滤特殊字符要好得多。采用了这些措施后你就能让那些参观你网站的客户在访问你网站时受到保护。
二、免受黑客攻击我们浏览器方法:
当你在网上漫游的时侯,怎样来避免受到攻击呢?微软和CERT建议不要在网上胡碰乱撞。针对这种情况,PC杂志一个栏目的名叫John Dvorack作者作了一个饶有兴趣的回答。他认为这是微软公司一起有预谋的行为:就是用来恐吓网上冲浪的人到那些安全的站点去浏览,如美国在线和MSN.com网站。
在我们所举的例子中,即使你不在网上胡乱游荡,也不能避免在网上遭到黑客的袭击。具有讽刺意义的是,大多数的危险都来自于我们最信任的网站。如果要让网站一定不出问题,你只好不下载任何动态内容或者任何cookie。预知详情请参阅浏览器的相关资料。
微软也警告你们应把浏览器的Active Script设置成严格限制的状态并把Email也设成严格限制的接收模式。在点击邮件中的链接时,一定要小心。如需进一步了解情况请参阅一本名叫<<Microsoft''s Knowledge Base Article Q253117>>的书。为了以防万一,你最好是多一点上网经验,并且时刻要小心谨慎。
结论
如果你是以前的UNIX程序开发人员,你也许不会知道跨站script意谓着什么。你知道许多站点的管理人员登录的用户名和密码分别为root,root.同样许多数据库管理员的名称和密码分别为sa,password。你也知道Webzine(如Phrack 和 Alt2600),依据他们所提供的方法能让你一步步地知道某台服务器的弱点。在这种硬件上,你也知道许多网站的数据库服务器和web服务器都没有进行自我保护。一但遭遇黑客,机器就得瘫痪。
尽管我们很容易采取防止系统受到黑客的攻击的措施,但我们的系统是一直暴露在黑客面前的。我们完全有理由相信下一年还会出现一些新的安全漏洞。在CERT公司John Howard先生指导下完成的一篇论文中曾提到:"跟据目前的研究显示,每个在英特网上具有域名的网站平均一年被黑客至少攻击一次。"
对服务器来说那怕只是一次这种攻击也是不能承受的。跨站Script攻击是黑客可采用的另一种方法。但我们只要进行以上所说的一些简单的处理就能防止这种形式攻击的发生。