セキュリティ:攻撃をスクリプトによって予防戦略を



ネットワークは、JSスクリプトは、HTMLの攻撃は強い以上でプレイするようスクリプト攻撃を使用してSQLインジェクションの脆弱性。他の多くのサイトの1つの後にこのような攻撃で、ホストの脆弱性のようにすぐに修復することはできませんでした悩まされている、ウェブからの攻撃ように予防またはもたらす修理我々の不便がたくさん。ウェブマスターが最もこの痛みを伴う。どのようにあなたのパスワードを攻撃者に強い、常に使用できますが、されているどのように実際のセキュリティを実現できますか?まず、パスワードはありません、あなたの人生をリンク、2番目、Supermasterのみを最もよく知って障害者第三、絶対に必要なWebサイトのプログラムを改善する。しかし、どのように改善することができます、それは、この資料の最終目標になります。

セキュリティは、どのようにセキュリティを行うには?したいの保護が必要な方法をお互いに攻撃を知っていることです。多くの記事は、特定のサイトをキャプチャし、実際には、自分達が攻撃だけでなく、次の書かれています:

1。シンプルな攻撃をスクリプト

このような攻撃が必要トラブルそれは退屈だ。例****:警告()については、これは、フィルタのためにどのような攻撃のみではなく、彼は目的に破壊することができますに近いではありません。多くのサイトが現在の無料サービス、またはプログラム自分のサイトに厳密にろ過問題ではない。

2。危険スクリプト攻撃

このような攻撃が終わったスクリプトに管理者または程度に他のユーザー情報を盗むことができるされている。私たちは皆知っている例については、、クッキーを盗むローカルクライアントの詳細を書いて、スクリプトを使用します。

3。インジェクション攻撃は、SQL

これは、この攻撃がDongwangluntanとBBSXPから開始すると述べたことができます。 SQLの特殊文字を使用してフィルタリングタイト、クロスデータベースクエリの攻撃されていません。例:

http://127.0.0.1/forum/showuser.asp?id=999 1 = 1

http://127.0.0.1/forum/showuser.asp?id=999 1 = 2

http://127.0.0.1/forum/showuser.asp?id=999 0 (選択数(*)管理者から)

http://127.0.0.1/forum/showuser.asp?id=999は'; @ @ 1 ='xp_'+ sysnameでありセットを宣言する

'Cmdshell'execを@ 1'ディレクトリのC :'---&援助= 9

管理者のパスワードを入手して、全体の駅が制御されている手段は、しかし必ずしも特権のホストも、この手順の伏線の多くを行うこと。 SQLインジェクションの方法に似て攻撃と異なる方法でクエリを閉じて撮影されていませんさまざまなファイルフィルタを意味します。だから手順は、次の努力されていません完全な文字のフィルタを作成することは不可能です。

4。リモートインジェクション攻撃

これだけ簡単なフォームページを送信フィルタと呼ばれるフィルタJSのサイトです。平均的なユーザーの場合は、防止する必要はありません。計画的攻撃、そのようなフィルタ効果がないよう懸念している。我々は多くの場合、POSTの攻撃が1つの例だという。リモートの攻撃によって、その目的を達成するために不正情報を投稿。

攻撃の方法上記の説明を通じて、generally攻撃方法を理解し、以下の説明は、私たちは開始時に着目し、どのような効果スクリプト攻撃を防ぐために!

だから我々は単純なものから開始:

スクリプト攻撃

JSのスクリプトとHTMLが攻撃の防止をスクリプトは非常に簡単です:でServer.HTMLEncode(STR)のbinに。もちろん、叫びをしないと、どのようにされるだろうか?あなたは駅に私がすべての疲れをフィルタリングするには?ためにフィルタリング、我々はHTMLのみのスクリプトとJSスクリプトにいくつかの主要文字を除外することができます必要が容易に追加好きではない私を許可する:プロシージャ本体は、(1)次のとおり:

'次のフィルタ関数である

'次のアプリケーションの例です。

ユーザー名=のChkは((("ユーザ名"),"'",""))要求を交換する

を含めるには、効率がいるので最高の公開ページを使って書かれた機能。

プロシージャの本体(1)

また、価値が我々の注意は、多くのサイトのユーザーは、登録やユーザ情報ページを変更もscript filtering、または1 only inのlack filterは、情報をpost -スクリプトintoまだ攻撃can registered変更されます。データはユーザーによって検出し、フィルタ提出、プログラム本体は(2)次の:

'次のフィルタ関数である

InStrは(要求(""),"=") を0またはユーザ名場合

InStrは(要求(""),"%") を0またはユーザ名

InStr関数(要求("ユーザ名")に、chr(32)) 0または

InStrは(要求(""),"?") を0またはユーザ名

InStrは(要求(""),"&") を0またはユーザ名

InStrは(要求(""),";") を0またはユーザ名

InStrは(要求(""),",") を0またはユーザ名

InStrは(要求(""),"'") を0またはユーザ名

InStrは(要求(""),"?") を0またはユーザ名

InStr関数(要求("ユーザ名")に、chr(34)) 0または

InStr関数(要求("ユーザ名")に、chr(9)) 0または

InStr関数(要求("ユーザ名")、"") 0または

InStrは(要求(""),"$") を0またはユーザ名

InStrは(要求("")," ") を0またはユーザ名

InStrは(要求("")," ") を0またはユーザ名

InStrは(要求("ユーザ名"),"""") 0し

Response.Writeメソッドで"友人が、あなたのユーザ名を送信する場合は戻る"感謝不正な文字を、変更、含まれています

Response.Endを

終了する場合

プロシージャの本体(2)

orderでは、さらに手続きの内容をフィルタしようと効率を提供する、so様々なparametersのろ過効率が大きく増加するでしょう:プログラム本体(3)などのように

'メインプログラムに続いて

薄暗いBword(18)

Bword(0 )="?"

Bword(1 )=";"

Bword(2 )=" "

Bword(3 )=" "

Bword(4 )="-"

Bword(5 )="'"

Bwordは(6 )=""""

Bword(7 )="&"

Bword(8 )="%"

Bword(9 )="$"

Bword(10 )="'"

Bword(11 )=":"

Bword(12 )="|"

Bword(13 )="("

Bword(14 )=")"

Bword(15 )="--"

Bword(16)="chrです(9)"

Bword(17)="chrです(34)"

Bword(18)="chrです(32)"

errc = falseを

'次のいくつかのアプリケーションの例を示します。

私= 0(Bword)UBound関数に

場合InStr関数(FQYs、Bword(i))を 0し

errc = trueを

終了する場合

次の

次にerrc場合

""Response.Writeメソッド

Response.Endを

終了する場合

プロシージャの本体(3)

のいずれかが必要直接にフィルタ機能をフィルタリングするためのアプリケーションに配置することができます上記のフィルタ機能付。これは、復元に大幅に簡素化私たちに仕事をもたらします。

また、それは隠し見つけることは容易ではないので、私よりも、再び変換フィルタリング問題次の発生しますUBBは小さな顔を作るいくつかのサイトを思い出して、ご希望ですか:

のような:

我々は、テキストラベルを変更する

あなたが理解し、知らなかった前に単一引用符と手順左引用符、単一引用符が2番目の使用と右引用符を閉じ、としてので、出力プロセスを提供:

画像が存在しない場合、タグはOnError実装スクリプトを有効になります。単一引用符については、サイトをフィルタリングされているここでは、二重引用符で完全に好きです。フィルタフィールド****は、唯一の()もすることができます警告します。だから我々は完全にフィルタリングすると、攻撃者に機会をトレースを残しを与えていないフィルタがあります。

防止SQLインジェクション攻撃

それがここに文章全体のフォーカスが多様化します。SQLインジェクションの脆弱性と思われるも我々はいくつかの詳細を考えるとしたプロセスの保護を行うとことができます。 SQLインジェクションの顔の強い"攻撃"は、フィルタの終わりに、私たちは?

いくつかのよく使用される文字のリスクがある

'データベースのフィールドが区別閉鎖

- マークいくつかのデータベースのアノテーションの

#一部はデータベースのアノテーション標識

"エラーにつながる5

クロスディレクトリ

3221143836nicodeはエンコードされた文字を備えています

$は、変数ラベルに使用される可能性

/そして、同じ

治療のリスクにNULL注意"空"のエントリは、データベースまたはシステムエラーには、使用エラー構造のオーバーフローを引き起こすことがあります。

スペースは、'一緒には、sql injecitonを構築する

=&2番目のパラメータはquerystrを書き換えることが場合があります。

ビューの(1)最も一般的なからSQLインジェクションの攻撃:ユーザ名とパスワードをフィルタリングの問題などで:

投稿:ユーザー名:'または'' ='ユーザのパスワード:'または'' ='

プロセスから始めて、我々は来ることができる、次のデータベース

SQLの="のSELECTバックアップのbin confの設定データeshow_sitemap.html generate.shは、WHEREメイントsitemap.htmlのsvn tmpのからのLusersのログ名= ''または''=''とパスワード= ''または''=''"

ASPスクリプトは、攻撃者がLusersのテーブルの最初のレコードを入力すると間違えされる中にこの方法では、これは、SQLサーバーが、できるようにすべてのレコードのLusersのテーブルを返すするユーザーのログイン名に攻撃ウェブサイト。注入このタイプのを防ぐために思えるかもしれないが非常に簡単です:

次の手順を使用して、プログラム本体(4)を達成することができます

gstrUserNameに=置換(Request.Formを("ユーザー名")、"''", "''''")

strPassword =置換(Request.Formを("パスワード")、"''", "''''")

プロシージャの本体(4)

(2)SQLインジェクション攻撃を防ぐために、最初のステップは、セキュリティの様々なを使用してはASP要求オブジェクト(Reques、場合、Request.QueryStringは、Request.Form、はRequest.Cookies、とでRequest.ServerVariables)ユーザーの入力からの制御を確保するためつまり、SQLコマンド信頼性。特定のセキュリティ対策は、DBMSに応じて異なります。

SQLインジェクション攻撃は環境に害をもたらす可能性がありますサイトのソフトウェアおよび構成によって異なります。 Webサーバーは、そのすべてのフォームを削除することも、SQLインジェクション攻撃を使用して、データベースにアクセスするためのアイデンティティの演算子(dbo)にするの新規作成フォームなど。サーバーのスーパーユーザー(寺)に、全体のSQLサーバーを制御することがSQLインジェクション攻撃を使用して、アイデンティティデータベースにアクセスする。一部の構成でも、データベースの全体を制御する独自のユーザーアカウントを作成することができます攻撃者がWindowsサーバーに位置しています。

のような:

http://127.0.0.1/forum/showuser.asp?id=999は'; @ @ 1 ='xp_'+ sysnameでありセットを宣言する

'Cmdshell'execを@ 1'ディレクトリのC :'--&援助= 9

http://127.0.0.1/forum/showuser.asp?id=999は'; @ @ 1 ='XPの'+ sysnameでありセットを宣言する

'_cm'+'Dshell'execを@ 1'ディレクトリのC :'--&援助= 9

もfqy fqy /このコマンドを追加するように:ネットユーザーが実行できます。もちろん、この場合は、土、しなければならない現在の状態を実行するために必要とするかは仮想ホストを攻撃、私はあなたが停止するお勧めします。

いくつかのサイトのマシン80によってマシンのポートの管理権限を得るために直接攻撃を防ぐため、使用されるためには、不可欠となっている。フィルタは、xp_cmdshellをonになるプライマリ多くのサイトでの手続きは、GETとPOSTまたはデータを、混合提出するGETを使用していると、このために、我々はGET SQLインジェクションの手順を防ぐ手段givenれた:場合は、プログラム本体(5)

fqys =がRequest.ServerVariablesは("")QUERY_STRINGの

薄暗いnothis(18)

nothis(0)="ネットユーザー"

nothis(1)="xp_cmdshellを"

nothis(2)="/追加"

nothis(3)="幹部%の20master.dbo.xp_cmdshell"

nothis(4)="からNET LOCALGROUP管理者"

nothis(5)="選択"

nothis(6)="カウント"

nothis(7)="昇順"

nothis(8)="文字"

nothis(9)="中"

nothis(10 )="'"

nothis(11 )=":"

nothis(12 )=""""

nothis(13)="挿入"

nothis(14)="削除"

nothisは(15)="ドロップ"

nothisは(16)=""切り捨てる

nothis(17)="から"

nothis(18 )="%"

errc = falseを

私= 0(nothis)UBound関数に

場合InStr関数(FQYs、nothis(i))を 0し

errc = trueを

終了する場合

次の

次にerrc場合

""Response.Writeメソッド

Response.Endを

終了する場合

プロシージャの本体(5)

私は文を指すようにしたいです:上記の手順は、データフィルタによって提出されたメソッドを、盲目的には適用されませんがGETです。

ASP要求(Reques、場合、Request.QueryStringは、Request.Form、はRequest.Cookies、とでRequest.ServerVariables)ユーザーの入力メソッドの攻撃方法は、主スクリプト変数に集中してから他のオブジェクトと同様に変数入力(IDの予想される数が)もちろん、私達はちょうど数変数などで見ることができない:

'http://127.0.0.1/systembbs/showtopic.asp?tid=99&name=abc、左(userpasswor

dは、1)='

'http://127.0.0.1/systembbs/addtopic.asp?tid=99&name=abcとuserpasswor

dは='または'' ='は、

また、どのように1つの注入は、このようなエラーを防ぐには?

http://127.0.0.1/systembbs/addtopic.asp?tid=99';削除forum_forum; - &ページ= 33

予防プログラム:プログラム本体(6)

...... Addtopic.asp?アクション= ......追加

...... Addtopic.aspはアクションが...... delect =?

アクションをは=(場合、Request.QueryStringトリム())

7アクションを左()場合は、"アクション="し'アクションに=クエリ文字列を制限する必要があります

エラー(err01)'エラー処理



アクション= Request.QueryStringは("アクション")'の値をクエリ文字列を取得

終了する場合

場合のアクションを'選択は、クエリ文字列に対応する

場合は""を追加

.....

ケース""を削除

......

場合他人がクエリ文字列は、エラー処理のために、この値ではありません

エラー(err02)

終了を選択

プロシージャの本体(6)

このような攻撃、soこと私たちのウェブマスターがagain頭痛を持って、ここに私はあなたに最高の方法、文字のユーザー名length、number general in 15文字を、14文字のmost exceedしないソリューションをgiveすることができますoccurs 。その後、我々は長さからフィルタに進みます:場合は、プログラム本体(7)

名前は=(名,"'","")を置き換える

16してlenは(名前)の場合

のResponse.write"あなたは何?"

Response.Endを

エンド場合

プロシージャの本体(7)

なぜ我々はここで単一引用符をフィルタリングして、どのように再び長さの制限を取るか?リトルは、最初の を'restrictionsを harrying 4ngel記事を参照してinjection を続けている。私に聞かないでください方法デジタルフォーマットに切り替えるには、私はしません、笑...^_^!

また、当社のテーマにreturnに続いて、"スクリプトの入力変数の数をexpected変数(ID)が"is。どのように予防、気には煩雑、最もdirect many into carry決定することですwhether digital integer、thereいくつかのよりパーソナルなアプローチの確認、我々は1つのような:プログラム本体(8)いずれかをご紹介

まず、判断するかどうかの整数

p_lngID = CLngと(要求("ID"を))

第二に、私はこの時点では、単語の長さのデータの長さを取るなんて信じられない通常の8ビットよりも大きいそうです:

場合lenは(ID)を 8し

Response.Writeメソッドで"ビッグスプリット"

応答側

終了する場合

3は、私はこの再、データベースクエリ、データベーステーブルは、同じ、同じエラーで返された値でない場合conduct ofより危険wayだと思います。

SQLの="のSELECT名前からカテゴリーどこのID ="&IDを

設定温度は、=(SQL)をconn.Execute

場合temp.bofまたはtemp.eofし

(Response.Redirectを"")index.asp



cat_name =気温("名")

終了する場合

=何もtempに設定

'上記のテストデータのIDですが、以下は正式な調査である

SQLの="のSELECT IDをT_ID、名前からカテゴリーどこのID ="&IDと"ORDER BY句xhの昇順"

します。rs.Open SQLでは、コン、1,1

第四に、私は、データのフィルタスクリプト、特許、オハイオ州〜使用

idは=(idは,"'","")を置き換える

場合lenは(要求("")) 8し'idはなぜ彼は上記の手順の長さを選んでいた示されている

""Response.Writeメソッド

Response.Endを



私たちは、programはエラーをチェックする判断してここにない場合、要求("idは") ""はthen'take場合、空のないisプロシージャのof number null値を防ぐためにページに現れるですが、。

場合IsNumeric(リクエスト(""))= idをFalseにして'Fengqingヤンは、プログラムデータの監視IDを変更する

""Response.Writeメソッド

Response.Endを

終了する場合

終了する場合

終了する場合

プロシージャの本体(8)

私のプログラミングの習慣、私はすべてのデータの検査手続きをご希望ですこのように全体ステーションの公開プログラムに維持された:conn.aspの問題だけで、全体の駅を書いて復元することができる問題1。

ここでは、攻撃の問題について何かを言及ユーザのパスワードまたはユーザー名、よく使用される実行するためにはです

... / Show.asp?イド= 1と0を (選択数(*)管理者IDを= 3から左(ユーザー名、1)=')

1つは、もちろん、我々はここで何をPerlプログラムは、パスワードを実行する方法については触れなかったことができますしてこうやってが一つのプログラムが他の誰かが、自分の原則を知っているに書き込まれます。ここで、私はより便利な方法を提供したい昇順のコードのスコープを取ることです。これだけで実行するよりもはるかに高速にいるかどうかの文字、数字、文字は、特殊文字は、彼らは常に、対応するのASCコードを持って、次の方法を使用して:

... / Show.asp?イド= 1と0を (選択数(*)管理者IDを= 3、(右(昇順左から(ユーザー名

電子、3)、1))97、一般の残りの部分から1の間10000)あなたとのから122の友人、文字まあ、すぐにD.かもすることができますああ、もちろん、誰かが半ば機能を使用したいのも良い昇順です(半ばには(ユーザー名、2,1))1〜10000の間になっている。

どのように多くのSQLインジェクション攻撃を防ぐために有効か?私たちは、特に次の資料を言及する!

リモートに対するインジェクション攻撃

pastこのような攻撃は、POSTの攻撃など、もっと普及攻撃手法、される必要があります、攻撃者はeasily purposeに提出する攻撃にされているデータ値を変更できません。他の例:COOKIESを偽造、それはまた、プログラマやステーションに値する長いノートでは、ユーザ認証メソッド、またはあなたと泥棒が鍵を残されたかにクッキーを使用しないのと同じ理由です。

例:

場合(Request.クッキーを("uname "))="のfqy"トリムとはRequest.Cookies("upwd")

="Fqy#e3i5.com"して

........もっと.........

エンド場合

私はあなたがウェブマスターや友達のように書いてプログラムをsuchミスmakeがあまりないのに許せないておきたい。Counterfeitクッキーは、長年からされると、他の人は、このパスワードを実行に使用する責めることはできない。ユーザーパスワードをRelatingまたはユーザーのログインには、より良く使用したいmost secureセッションです。お客様の情報in余分な、SessionIDは、64ビットのランダム値であり、ソリューションは不可能です推測に追加するon COOKIESクッキーを使用する場合例:

しない(rs.BOFまたはrs.eof)している場合

ログイン="true"を

セッション("ユーザ名"&sessionIDセッション)=ユーザ名

セッション("パスワード"&sessionIDセッション)=パスワード

'のResponse.Cookies("ユーザ名")=ユーザ名

'のResponse.Cookies("パスワード")=パスワード

リモート注入攻撃を防ぐ方法についてみましょうの話は、攻撃は一般にローカルの上に単シートの提出をサーバーにフォームACTIONには="chk.asp"ポイントのデータは、fileを処理できますされます。場合you allデータは、スクリプトの攻撃でなければならないことを祝福1つのフォームのページで、その後のフィルタリング。

どのように我々は、参照してください?簡単に処理するためにこのようなリモート攻撃を停止することができます、下のコード:プロシージャ本体(9)

上記のコードのフィルタリングの個人感があまりよくない、いくつかの外部にあると、彼女はに提出to proud、then 1を書いていた。

'これは、フィルタがうまく働いているお勧めします。

InStr関数(でRequest.ServerVariablesは("http_referer")の場合、"http://"で&でRequest.ServerVariables("ホスト")) 1を

"サーバーエラーにResponse.Writeを処理するときのURLです。

あなたはあらゆる攻撃サーバーを使用している場合は、喜んでいる必要があります場合は、レコードのすべての操作は、私たちは、初めて国家安全保障部門あなたのIPアドレスを調べるために公安局に通知するサーバーする必要があります。"

Response.Endを

終了する場合

プロシージャの本体(9)

私はすべてがうまくされ、フォームのページでもしmaxlength友人など...しかし、神はとてもBuzuoメイが、より多くの場合は彼がますます行う恐れがあるなど、いくつかの制約を追加して、と思った。あなたは、SQLインジェクションを突破できる攻撃者は忘れないでください攻撃は、入力ボックスの長さを制限します。HTTP_REFERERを変更するにはソケットの手順を書くのか?私はしません。オンラインで記事を公開:

------------レン。レッグ-----------------

Windowsレジストリエディタバージョン5.00

[HKEY_CURRENT_USERSoftwareMicrosoftInternet ExplorerMenuExtは(&E)が]拡張

@ ="C:文書やSettingsAdministratorデスクトップlen.htm"

"コンテキスト"= DWORD値:00000004

-----------エンド----------------------

-----------レンする。htm ------------------

----------エンド-----------------------

使い方は:レジストリ(に最初のlen.reg)ファイルのパスをメモ

そして、それは場所をレジストリで指定されたlen.htmにコピーします。

Webページを開き、入力ボックスにカーソルが右に拡張へのコールオプションの詳細を参照する右クリックの長さを変更する

をクリックして取得する!Postscriptを:同じ制限が、スクリプトの入力のこれらの要素に対処することができます。

どうすれば?私たちの制限、および免れるされたすべての努力はしていた無駄?しない、あなたのデキーボードを高め、ノーと言う。私たちは戻ってスクリプトの文字にフィルタリングを継続しよう、彼らは何もスクリプトインジェクション攻撃によりされた。私たちは皆それ以降、chk.aspのページでは、我々はすべての不正な文字を除外するすべてのエネルギーアクションページを使用し、その結果は?私たちはフロントでレジストリを、それを変更するように言ったフェイントを撮影するとき彼らは、彼らは無駄にしている完全な変化を見つける。

ASPのトロイの木馬

持ってて、ここで、あなたに、あなたのファイルのアップロードの注意ウェブマスター向けのフォーラムを思い出させる:なぜフォーラムプログラム終了後も攻撃を取る開催される壊れていた記載されて。理由は......よ!ASPのトロイの木馬!絶対に不愉快なもの。どのようなウイルス?絶対にありません。簡単にフォーラムのプログラムには、古い探しに行くファイル。ああ、いや吐血奇妙な。フォーラムにはファイルのアップロードをサポートする場合、どのようASPのトロイの木馬を防ぐためにサーバーにアップロードされた?方法は簡単です、あなたが、私は、直接プロシージャからファイル形式を変更することができます使用しないでくださいアップロードするファイル形式を設定することができますロックされて、唯一のイメージファイル形式、および圧縮されたファイルは完全に便利することもできますより便利に攻撃を残して、自分を残して。どのように形式を判断し、私はここで、また、私たちを見てすることができます:プロシージャ本体(10)変更のコレクションを持って

'決定ファイルタイプ修飾されて

プライベート機能CheckFileExt(fileEXT)

薄暗いForumupload

Forumupload ="のGIF、JPG、BMPの、のJPEG"

Forumupload =分割(Forumupload ,",")

私= 0(Forumupload)UBound関数に

当てはまりますが(fileEXTは)=当てはまります((Forumuploadトリム場合(ⅰ)))し、

CheckFileExt = trueを

終了関数



CheckFileExt = falseを

終了する場合

次の

エンド機能

ファイルの内容の'確認合法

myfileは= Server.CreateObjectを設定("Scripting.FileSystemObjectの")

テキストファイルを読んでくださいMyText = MyFile.OpenTextFileを(1 sFileに設定)

sTextAll =当てはまります(MyText.ReadAll):MyText.close

'どのユーザーのファイル操作の危険性

sStr ="8 |。含んだCaledarPermissionの|。createfolderの|。deletefolderの|。CreateDirectoryはの|

。。削除"

sStr = sStr&"|。付けて保存| wscript.shell | script.encodeを"

sNoString =分割(sStr ,"|")

i = 1からsNoStringするために(0)

場合InStr関数(sTextAll、sNoString(i))を 0し

sFileに= Upl.Path&sFileSave:fs.DeleteFile sFileに

のResponse.write"

"&SFileSave&"ドキュメントおよびディレクトリ"&_関連命令を含む操作

"

"&ミッド((i)が2 sNoString)&"、セキュリティの理由から、アップロードできません。 "&_

"

"

Response.Endを

終了する場合

次の

プロシージャの本体(10)

あなたの検証を行う際の手順をアップロードすると、アップロードプロセスのセキュリティを追加大幅に強化されます。

、プロバイダをホストして、それを助けるために何を?あなたは心配しないで?キラーアウトお問い合わせください。ログインはサーバーにはPROG"がshell.applicationの"項目"shell.application.1"変更項目または削除をIDです。次に、"WSCRIPT.SHELL"アイテムと"WSCRIPT.SHELL.1"これら2つの名前を変更するか、または削除されます。 、中国の半分以上が仮想ホストのないリハビリかもしれないと言うああ、私はあえて。幸いにも、することができます非常に協力的ユーザーは、それ以外の場合......私は削除すると、私は削除、削除削除削除私......

要約

どのようにより良いSQLインジェクション攻撃を防ぐには?ここでは、いくつかの方法を、まず、無料のプログラムは本当に無料でご利用がないことをお勧め午前には、元のコードを共有することができるので、その攻撃者が同じコードを分析することができます。所有者が能力を何が最善のデータベースのテーブル名、フィールド名、のみkey管理、ユーザー名を変更、それにパスワード、などの名前を推測するこれってフィールドをforum_upasswdですchange to have If?場合は、推測する場合mostお買い得宝くじは、それを迅速に、最優秀賞をして?また、キーは一般的なサイト管理者のパスワードにある、よく重要です管理者のパスワードを、少なくとも10は保護されません文字の組み合わせの数です。別のプラスは、ほとんどのサイトでは、プラスのパスワードの堅牢性、、ユーザのパスワードprogram暗号化にMD5を使用するis greatly increased onあなたのサイトのセキュリティを。そこにSQLインジェクションの脆弱性である場合、攻撃者はあなたにすぐにサイトを獲得することはできません。