ハッカー攻撃をより効果的に防ぐにはどうすればよいか、個人的な意見を述べたいと思います。まず、無料プログラムは無料で使用すべきではありません。元のコードを共有できるため、攻撃者もコードを解析できます。細部に注意を払うと、サイトのセキュリティが大幅に向上します。 SQL インジェクションなどの脆弱性が発生したとしても、攻撃者がサイトをすぐにダウンさせることは不可能です。
ASP は便利で使いやすいため、ASP スクリプト言語を使用する Web サイトのバックグラウンド プログラムが増えています。ただし、ASP 自体にはセキュリティ上の脆弱性がいくつかあるため、注意しないとハッカーに悪用される可能性があります。実際、セキュリティはネットワーク管理者だけの問題ではなく、プログラマも特定のセキュリティの詳細に注意を払い、適切なセキュリティ習慣を身につけなければなりません。そうしないと、Web サイトに大きなセキュリティ リスクがもたらされてしまいます。現在、Web サイト上のほとんどの ASP プログラムには何らかのセキュリティ ホールがありますが、プログラムを作成するときに注意していれば、それでも回避することができます。
1. ユーザー名とパスワードが解読される
攻撃の原則: ユーザー名とパスワードは、多くの場合、ハッカーが最も関心のあるものです。ソース コードが何らかの形で見られると、重大な結果が生じます。
防止スキル: ユーザー名とパスワードに関係するプログラムはサーバー側でカプセル化するのが最善であり、データベース接続に関係するユーザー名とパスワードには最小限のアクセス許可を与える必要があります。頻繁に表示されるユーザー名とパスワードは、隠しインクルード ファイルに書き込むことができます。データベースへの接続が必要な場合は、ストアド プロシージャを実行する権限のみを与えるのが理想であり、レコードを変更、挿入、または削除する権限をユーザーに直接与えないでください。
2. 検証バイパス
攻撃の原則: 現在、検証が必要な ASP プログラムのほとんどはページのヘッダーに判定ステートメントを追加していますが、これだけでは十分ではなく、ハッカーが検証をバイパスして直接侵入する可能性があります。
防止スキル: 検証が必要な ASP ページは、前のページのファイル名を追跡できます。前のページから転送されたセッションのみがこのページを読み取ることができます。
3. Inc ファイル漏洩問題
攻撃原理:ASP によるホームページを制作中、デバッグ前に完成していない場合、一部の検索エンジンにより自動的に検索対象として追加される場合があります。この時点で検索エンジンを使用してこれらの Web ページを検索すると、関連ファイルの場所が取得され、ブラウザーでデータベースの場所と構造の詳細が表示され、完全なソース コードが明らかになります。
防止のヒント: プログラマは、Web ページを公開する前に徹底的にデバッグする必要があります。セキュリティ専門家は、外部ユーザーが Web ページを見られないように ASP ファイルを強化する必要があります。まず、.inc ファイルのコンテンツを暗号化します。次に、ユーザーがブラウザからファイルのソース コードを直接表示できないように、.inc ファイルの代わりに .asp ファイルを使用することもできます。 inc ファイルのファイル名には、システムのデフォルト名や、ユーザーが推測しやすい特別な意味を持つ名前を使用しないでください。不規則な英字を使用してください。
4. 自動バックアップ ダウンロード
攻撃の原理: ASP プログラムを編集するための一部のツールでは、ASP ファイルを作成または変更すると、エディタは自動的にバックアップ ファイルを作成します。たとえば、UltraEdit は .bak ファイルを作成または変更します。 some.asp を変更すると、エディターは some.asp.bak というファイルを自動的に生成します。この bak ファイルを削除しないと、攻撃者は some.asp.bak ファイルを直接ダウンロードできるため、some.asp のソース プログラムがダウンロードされます。ダウンロードになります。
予防のヒント: アップロードする前にプログラムを注意深く確認し、不要なドキュメントを削除してください。 BAK サフィックスが付いたファイルには特に注意してください。
5.
特殊文字攻撃の原則: 入力ボックスは、スクリプト言語を入力することによってユーザー クライアントに損害を与える可能性があり、入力ボックスにデータ クエリが含まれる場合、特殊なクエリ ステートメントを使用してより多くのデータベース データを取得します。あるいはテーブル全体でも。したがって、入力ボックスをフィルタリングする必要があります。ただし、効率を向上させるために入力有効性チェックがクライアント上でのみ実行される場合は、依然としてバイパスされる可能性があります。
防止スキル: 掲示板や BBS などの入力ボックスを処理する ASP プログラムでは、特別な要件がない場合、文字と数字の入力を文字と数字のみに制限することができます。数字とブロック特殊文字。同時に、入力文字の長さには制限があります。また、入力の有効性チェックをクライアント側で実行するだけでなく、同様のチェックをサーバー側のプログラムでも実行する必要があります。
6.
データベース ダウンロードの脆弱性攻撃の原理: Access をバックエンド データベースとして使用する場合、誰かがサーバーの Access データベースのパスとデータベース名をさまざまな方法で知っているか推測すると、Access データベース ファイルもダウンロードされる可能性があり、これは非常に危険です。 。 の。
防止のヒント:
(1) データベース ファイルに複雑で型破りな名前を付け、複数のディレクトリに配置します。いわゆる「型破り」ですが、たとえば書籍に関する情報を保存したいデータベースがある場合、「book.mdb」という名前を付けるのではなく、d34ksfslf などの奇妙な名前を付けます。 ./kdslf/i44/studi/ などの複数のディレクトリに配置すると、ハッカーが推測によって Access データベース ファイルを入手することがさらに困難になります。
(2) プログラム中にデータベース名を記述しないでください。プログラム内に DSN を記述することを好む人もいます。例:
DBPath = Server.MapPath("cmddb.mdb")
conn.Open "driver={Microsoft Access Driver (*.mdb)};dbq=" & DBPath
誰かがソース プログラムを入手すると、Access データベースの名前が一目でわかります。したがって、ODBC でデータ ソースを設定し、プログラムに次のように記述することをお勧めします。
conn.open "shujiyuan"
(3) Access を使用してデータベース ファイルをエンコードおよび暗号化します。まず、「ツール」→「セキュリティ」→「データベースの暗号化/復号化」でデータベース (employer.mdb など) を選択し、「OK」をクリックします。その後、「データベースを暗号化して保存」ウィンドウが表示されます。「employer1」という名前で保存できます。 .mdb」。
上記のアクションはデータベースのパスワードを設定するのではなく、データベース ファイルをエンコードするだけであり、他の人が他のツールを使用してデータベース ファイルの内容を閲覧できないようにすることに注意してください。
次に、データベースを暗号化します。まず、エンコードされたemployee1.mdbを開きます。開くときに「排他」モードを選択します。次に、メニューから「ツール→セキュリティ→データベースパスワードの設定」を選択し、パスワードを入力します。こうすることで、たとえ他人がemployee1.mdbファイルを入手したとしても、パスワードがなければemployee1.mdbの内容を見ることはできません。
7. リモートインジェクション攻撃を防止する
この種の攻撃は、POST 攻撃など、攻撃の目的を達成するために送信されるデータの値を自由に変更することができます。 COOKIES の偽造。これはプログラマーや Web マスターの注意を引きます。そうしないと、キーを泥棒に渡すことになります。
例
:
uname"))=" fqy" および Request.cookies("upwd") ="fqy#e3i5.com" の場合
……..もっと…………
プログラムを書くのが好きなすべてのウェブマスターや友人がこの種の間違いを犯してはいけないと思うなら、これは本当に許しがたいことです。もしあなたがまだそれを使用しているのなら、他人があなたのものを盗んだことを責めることはできません
。
ユーザー パスワードまたはユーザー ログインに関しては、最も安全なセッションを使用することをお勧めします。COOKIES にもう 1 つの情報、SessionID を追加します。 64 ビット。推測する必要があります。不可能です。例:
(rs.BOF または rs.eof)
ログイン = "true"
Session("ユーザー名"&セッションID) = ユーザー名
セッション("パスワード"&セッションID) = パスワード
'Response.cookies("ユーザー名")= ユーザー名
'Response.cookies("Password") = Password
リモート インジェクション攻撃を防ぐ方法について説明します。一般的な攻撃は、単一のフォーム送信ファイルをローカルにドラッグし、フォーム ACTION="chk.asp" をサーバーにポイントすることです。すべてのデータ フィルタリングが 1 つのテーブル ページにある場合、
そのようなリモート攻撃を防ぐにはどうすればよいでしょうか。コードを参照してください。プログラム本体 ( 9)
<%
server_v1=Cstr(Request.ServerVariables("HTTP_REFERER"))
server_v2=Cstr(Request.ServerVariables("SERVER_NAME"))
if mid(server_v1,8,len(server_v2))<>server_v2 then
response.write "<br><br><center>"
応答.書き込み " "
response.write "送信したパスが間違っています。サイト外からのデータ送信は禁止されています。パラメータを変更しないでください。"
応答.書き込み "
"
応答.終了
終了する場合
%>
'個人的には、上記のコードのフィルタリングはあまり良くないと感じています。一部の外部送信はまだ公然と入ってくる可能性があるため、別の
フィルタリング
効果を作成しました。
.servervariables("http_referer" )," http://"&request.servervariables("host ") )<1 then response.write "URL の処理中にサーバーでエラーが発生しました。
何らかの手段でサーバーを攻撃している場合あなたのすべての操作がサーバーに記録されていることが幸運です。あなたの IP を調査するためにできるだけ早く公安局と国家安全保障局に通知します。
」
終了する場合
プログラム本体 (9) は、
これですべてがうまくいくだろうと考え、フォーム ページに最大長などのいくつかの制限を追加しました。しかし、神はとても不親切です。何かを恐れれば抱くほど、その可能性は高くなります。忘れないでください。攻撃者は、SQL インジェクション攻撃中に入力ボックスの長さの制限を突破できます。HTTP_REFERER を変更する SOCKET プログラムを作成します。私はしません。このような記事がオンラインで公開されました:
------------len.reg-----------------
Windows レジストリ エディタ バージョン 5.00
[HKEY_CURRENT_USERソフトウェアMicrosoftInternet ExplorerMenuExtExtensions]
@="C:Documents and SettingsAdministratorDesktoplen.htm"
"コンテキスト"=dword:00000004
- - - - - 終わり - - - - - - - - - - -
----------len.htm---------------
----------終了----------------------
使用法: まず、len.reg をレジストリにインポートし (ファイル パスに注意してください)
、次に、len.htm をレジストリ内の指定された場所にコピーします。Web
ページを開き、長さを変更する入力ボックスにカーソルを置き、[拡張子] というオプションが表示されたら、[
完了] をクリックします
。: 入力内容を制限するスクリプトにも同様に
対処
できますか?私たちの限界は免れ、すべての努力が無駄になったでしょうか?いいえ、キーボードを上げて「いいえ」と言いましょう。スクリプト文字のフィルタリングに戻りましょう。これらが実行するインジェクションは、スクリプト攻撃に他なりません。 ACTION の後のページに全力を注ぎましょう。chk.asp ページですべての不正な文字を除外します。結果はどうなるでしょうか。私たちは目の前で誤った指示を出し、レジストリを変更するように頼んだだけです。変更が完了したときに初めて、彼らは自分たちのやったことが無駄だったことに気づきます。
8.
ここでは ASP トロイの木馬について説明しましたが、すべてのフォーラム Web マスターにファイルをアップロードする際には注意するよう注意してください。フォーラム プログラムが壊れた後、ホストも攻撃者に占有されるのはなぜですか?その理由は…そうです! ASP トロイの木馬!まったくの忌まわしいことだ。ウイルス?いいえ、フォーラムのプログラムにファイルを入れるだけでいつでも探すことができます。血を吐かないほうがおかしい。 ASP トロイの木馬がサーバーにアップロードされるのを防ぐにはどうすればよいでしょうか?方法は非常に簡単です。フォーラムがファイルのアップロードをサポートしている場合は、プログラムから直接変更可能なファイル形式をロックしてください。はい、自分自身の利便性を高めることは、攻撃者にとっても利便性を高めることになります。フォーマットを決定するにはどうすればよいでしょうか。ここに集めたものを参照してください。
プログラム本体 (10)
ファイルの種類が修飾されているかどうかを判断します。
ディムフォーラムアップロード
フォーラムアップロード = "gif,jpg,bmp,jpeg"
Forumupload=split(フォーラムアップロード,",")
for i=0 から ubound(Forumupload)
lcase(fileEXT)=lcase(trim(Forumupload(i))) の場合
CheckFileExt=true
終了関数
それ以外
CheckFileExt=false
終了する場合
次
終了機能
' ファイル コンテンツの正当性を確認します
set MyFile = server.CreateObject ("Scripting.FileSystemObject")
set MyText = MyFile.OpenTextFile (sFile, 1) ' テキスト ファイルを読み取ります sTextAll = lcase(MyText.ReadAll): MyText.close
'ユーザー ファイル内の危険な操作を特定する sStr = "8 .getfolder .createfolder .deletefolder .createdirectory
.deleteディレクトリ」
sStr = sStr & " .saveas wscript.shell script.encode"
sNoString = split(sStr," ")
i = 1 から sNoString(0) まで
if instr(sTextAll, sNoString(i)) <> 0 then
sFile = Upl.Path & sFileSave: fs.DeleteFile sFile
Response.write "<center><br><big>"& sFileSave &"ファイルには操作ディレクトリ等に関するコマンドが含まれています。"&_
"<br><font color=red>"&mid(sNoString(i),2) &"</font>、セキュリティ上の理由から、<b>はアップロードできません。<b>"&_"</big>< /センター></html>"
応答.終了
終了する場合
次に
検証のためにアップロード プログラムに追加すると
、アップロード プログラムのセキュリティが大幅に向上します。
まだ心配ですか?切り札を考え出して、Web ホスティング サービス プロバイダーに助けを求めてください。サーバーにログインし、PROG ID の「shell.application」および「shell.application.1」項目の名前を変更または削除します。次に、「WSCRIPT.SHELL」項目と「WSCRIPT.SHELL.1」の両方の名前を変更するか、削除します。あはは、おそらく中国のバーチャルホストの半分以上は変わっていない、と大胆に言えます。ユーザーが非常に協力的であることは嬉しいことですが、そうでない場合は...削除します、削除します、削除します、削除します、削除します...