To Do(というかやりたいこと。何時終わることやら)
-ITIL導入のための成熟度チェックシートみたいなの(あると便利だよね?)
-Hacknotes Web Security Portable Reference和訳(出版社募集中)
-Webアプリケーションセキュリティ検査ツールの改良(一応完成)
-Hacker HighSchoolの資料の日本語訳
-OSSTMMの日本語訳
-「燃えるセキュアプログラミング」若しくは「サルでも分かるセキュアプログラミング」とか書いてみたいなぁみたいな。
これだけはチェックしときなはれ!!受入れテスト用セキュリティチェックリスト公開中
Webアプリケーションセキュリティはてなぐるーぷ(テスト中やで)
SQL Injectionの仕組みと対策公開中
2011-02-08 また久しぶりw

PlayStation 3 (160GB) チャコール・ブラック (CECH-2500A) 【メーカー生産終了】
- 出版社/メーカー: ソニー・コンピュータエンタテインメント
- 発売日: 2010/07/29
- メディア: Video Game
- 購入: 21人 クリック: 390回
- この商品を含むブログ (84件) を見る
購入: 13人 クリック: 124回
購入: 19人 クリック: 519回
2010-04-21 あつい、ねむい
2010-03-16 あつ〜
■[セキュリティ]サニタイズ脳?

某所にて以下のようなコードを見つけてしまった。
<?php
$name = htmlspecialchars($_post["name"], ent_quotes);
$mail = htmlspecialchars($_post["mail"], ent_quotes);
$mail = mb_convert_kana($mail, "a");
$sub = htmlspecialchars($_post["sub"], ent_quotes);
$freeans = htmlspecialchars($_post["freeans"], ent_quotes);
$check = htmlspecialchars($_post["check"], ent_quotes);
if(!(($check == "1") || ($check == "0"))){
$error = "変数checkが予測されている値ではありません。";
}
//入力チェック
if(strlen($name) == "0"){
$error = "氏名を入力してください。";
}if(strlen($mail) == "0"){
$error = "メールアドレスを入力してください。";
}if(preg_match("/^[^@]+@([-a-z0-9]+\.)+[a-z]{2,}$/",$mail)){
$error = "メールアドレスの形式が正しくありません。";
}if($check == "0"){
$error = "個人情報の取り扱いについてに同意してください。";
}
if(count($error)){
exit;
}
//入力情報をメールで送信
if (mb_send_mail("hoge@example.com", $sub, $final, $from)){
}else{
$error = "ご記入頂いた情報の転送に失敗しました。";
}
?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html lang="ja">
<head>
<body>
<form method="post" action="<?=$_server["php_self"]?>">
<p>氏名:</p>
<input class="form" type="text" name="name" value="<?=$name?>" />
<p>返信用メールアドレス:</p>
<input class="form" type="text" name="mail" value="<?=$mail?>" />
<p>件名:</p>
<input class="form" type="text" name="sub" value="<?=$sub?>" />
<p>お問い合わせ内容:</p>
<textarea class="form" name="freeans" rows="4" cols="40"><?=$freeans?></textarea>
<input name="check" type="checkbox" value="1" <?if($check == "1"){echo"checked";}?> />個人情報の取り扱いについて同意する。<br>
<input type="submit" name="send" value="送信" />
</form>
</body>
これって、XSSの対策はhtmlspecialchars()使えばいいという知識だけがあって、何のためにやるのかを理解してないんだろうなぁ。いろいろ脆弱性対策の解説はあるけど、実際のコードではどうすればいいのか?ってのが抜けているのかもしれないなぁとこれを見て思った。
通りすがり
2010/04/20 15:04
このコードの問題点(!?)はhtmlspecialcharsするのはhtml出力のとこだけでいいんじゃない?ということでしょうか??xssは無理ですよね?
ikepyon
2010/04/20 15:59
そうです。XSSはムリですが、全てのパラメータにする必要が無いですよね。例えば、mailなんかhtmlspecialcharsを使っちゃいけない(メールアドレスが変わる)し、checkはその内容をそのまま表示しているのにいらない。
2010-02-25 だるい
■[セキュリティ]mod_wafful

というのがあったなんて知らなかった。
これを使えば、中途半端な文字コードを使った脆弱性を防げそう。
http://wafful.org/mod_wafful/mod_wafful.c
http://lc.linux.or.jp/lc2008/slide/lt-02.pdf
こんなことで嘆かなくてよいかも
2003 | 04 | 05 | 06 | 07 | 08 | 09 | 10 | 11 | 12 |
2004 | 01 | 02 | 03 | 04 | 05 | 06 | 07 | 08 | 09 | 10 | 11 | 12 |
2005 | 01 | 02 | 03 | 04 | 05 | 06 | 07 | 08 | 09 | 10 | 11 | 12 |
2006 | 01 | 02 | 03 | 04 | 05 | 06 | 08 | 09 | 10 | 11 | 12 |
2007 | 01 | 02 | 03 | 04 | 05 | 06 | 07 | 08 | 09 | 10 | 11 | 12 |
2008 | 01 | 02 | 03 | 04 | 05 | 06 | 07 | 08 | 09 | 10 | 11 | 12 |
2009 | 01 | 02 | 03 | 04 | 06 | 07 | 08 | 09 | 10 | 11 | 12 |
2010 | 02 | 03 | 04 |
2011 | 01 | 02 |


