Asp.Net

サニタイジングする必要がある記号、文字列

net user 
xp_cmdshell 
/add 
exec master.dbo.xp_cmdshell 
net localgroup   administrators 
select 
count 
Asc 
char 
mid 
' 
; 
" 
\(円記号)
/* ... */
--
insert 
delete   from 
drop   table 
update 
truncate 
from 
% 

注意点

 URLとTextBoxの入力(もちろんほかにクッキーなどの手段があります)からインジェクションができます、うちにURLに対するサニタイジングなら、すべての危険コードを検査します、TextBox入力をサニタイジングする場合、正常の入力をサニタイジングしないように、記号のみをエンコードすれば、いいでしょう。

ほかの注意点:

  • HttpUtilityクラスのHtmlEncodeメソッドで単に下記の5種類の文字をエンコードできますので、サニタイジングなら完全にHtmlEncodeに任せないです。
    "
    &
    <
    >
    文字コードが0x0A~0xFFの文字
  • URLの長さを制限する
  • インジェクション側のIPアドレスを記録、ブロックする
  • 添付ファイルを格納するディレクトリなど書き込む必要がある処以外、すべてReadOnlyに設定する
  • DbParameterクラスを利用して、SQLコマンドを作成する。(複数データベースのサポートに面倒)
  • データのタイプ、長さを予想できるなら、型、データを検査を行います、文字列の場合、正規表現でチェックします。

まだ何かありましたら、コメントお願いします。

コメント:



(画像の文字列を入力して下さい)

サンプル

JavaScriptサニタイズサンプル

<script   language= "javascript "> 
<!-- 
  var   url   =   location.search; 
  var   re=/^\?(.*)(select%20|insert%20|delete%20from%20|count\(|drop%20table|update%20truncate%20|
           asc\(|mid\(|char\(|xp_cmdshell|exec%20master|net%20localgroup%20administrators|\ 
           "|:|net%20user|\ '|%20or%20)(.*)$/gi; 
  var   e   =   re.test(url); 
  if(e)   { 
    alert( "何をするつもりですか?"); 
    location.href= "error.asp "; 
  } 
//--> 
<script>

参考情報



あなたのお住まいの地域で最安のブロードバンド選び

コメント:



(画像の文字列を入力して下さい)

トップ   編集 凍結解除 差分 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2019/12/02 (月) 12:47:48 (1627d)

G|Cg|C@Amazon Yahoo yV

z[y[W yVoC[UNLIMITȂ1~] COiq COsیI