DreamWeaverでASP Webサイトを開発するのは簡単です。それで、初心者と退役軍人に違いはありませんか?それの違いは大きいですが、素人が一目で見ることは困難です。インターフェイスの友情、運用パフォーマンス、およびウェブサイトのセキュリティは、初心者や退役軍人とは異なる3つの集中点です。
セキュリティの観点から、初心者の最も簡単な問題は、SQLが注入された脆弱性の問題です。 NBSI 2.0を使用して、インターネット上のいくつかのASP Webサイトをスキャンすると、多くのASP WebサイトにSQLインジェクションの脆弱性があることがわかります。
SO -Called SQL Injection(SQL Injection)は、プログラマーの入力データの抜け穴をユーザーの入力データに使用することです。
攻撃のSQLインジェクションの主な理由は、ユーザーが入力したデータを動的に生成することができないことがわかります。
一般的なHTTP要求は取得と投稿に過ぎないため、プログラム内のすべての投稿のすべてのパラメーター情報または取得リクエストをフィルタリングする限り、SQLインジェクション攻撃を防ぐことができます。
残念ながら、DWは関連するコードを提供していないため、SQLインジェクション型攻撃を防ぐ場合は、変更する必要があります。
次のプログラムをsqlinuction.aspとして保存してから、注入する必要があるページのヘッダーを呼び出します。
<! - #file = sqlinuction.asp->を含める
ページディフェンスインジェクションを行うことができます。
ステーション全体を参照する場合は、ヘッドコールを追加するか、DWによって生成された接続によって生成されたデータベース接続ファイルに次のプログラムコードを直接追加する場合があります。データベース接続ファイル。コンテンツを待つと、SQLステートメントシステムに遭遇した場合、SQL攻撃が促されると誤って信じるでしょう。
一般的なプログラムコード(適切な変更を加えるためにインターネットから引用):次のように:
<%
'---------定義パーツ-----------------------
dim sql_injdata
sql_injdata |
|
|宣言|。
sql_inj = split(sql_injdata、| | |
'-------------------------------------
request.querystring <> thenの場合
request.querystringの各sql_getについて
sql_data = 0からubound(sql_inj)
If strument(request.querystring(sql_get)、
sql_inj(sql_data))> 0
respons.write <スクリプト言語= javascript>
Alert( 'システムは!
Response.End
ifを終了します
次
次
ifを終了します
'--------パーツを取得-------------------------
if request.form <> then
request.formの各sql_postについて
sql_data = 0からubound(sql_inj)
If struct(request.form(sql_post)、sql_inj(sql_data))> 0
respons.write <スクリプト言語= javascript>
Alert( 'システムは!
Response.End
ifを終了します
次
次
ifを終了します
%>
上記のプログラムを通じて、GETメソッドまたはPOSTメソッドから提出された危険SQLインジェクションキャラクターを達成することができ、侵略者はindex.htm(ホームページ)に頼るように警告されます。