スレッド表示 | フラット表示〕 全トピック 920 件中 690 番目 次≫ ≪前

セキュリティについて

created: 2004-01-26 00:12 | modified: 2004-01-28 01:51 | reply: 3

[1251] セキュリティについて

user: hyg | created: 2004-01-26 00:12
セキュリティのページの「フォームデータを直接SQL文に埋め込む 」を見てかなりぞっとしました。なんせ今作っていたページがまさにそのまま登録情報をinsert文に埋め込んでいたからです。
で、念のためテスト環境でdelete文を引数で渡して生成されたsql文を見てみたのですが、どやら引数の中のダブルクォートやシングルクォートは勝手に\がついてエスケープされてるみたいなのです。つまりセキュリティのページの
"1'; drop database mysql;"を引数で渡した場合では
select * from books where bnumber='1\'; drop database mysql;'
となってとくにdrop文は実行されないものと思われます。
これは僕の環境「PHP 4.3.2」の仕様なのでしょうか?
これは今のPHPの仕様なのでしょうか?できれば登録情報をそのままテーブルに入れる仕様でいたいので(SQL文をそのまま登録したい場合もあります。)チェックの必要がなければこのままで行きたいと思います。
僕の勘違いでしたらすいません。
何かわかりましたらご教授ください。よろしくお願いします。
reply: 1252 1256 返信 編集 削除

[1252] 最近はデフォルトで設定されている

user: シロウ ホームページ | created: 2004-01-26 02:30
はじめましてシロウと申します。

PHPの設定ファイルでmagic_quotes_gpcがOnになっている事が原因です。
GET・POST・COOKIEなどのデータを自動でエスケープしてくれる機能です。
最近のPHPではデフォルトでOnになっているようです。
今後ず?とデフォルトがOnとは限らないですが……。

変更するには直接php.iniを編集するか、.htaccessを設定するしかないようです。

-------- .htaccess --------
<IfModule mod_php4.c>
php_flag magic_quotes_gpc off
</IfModule>

関数で対応する場合
$sql = stripslashes($_POST['bnumber']);
Parent: 1251  返信 編集 削除

[1256] Re. セキュリティについて

user: ゆうじ | created: 2004-01-26 13:17
こんにちは。
記事を書きましたいわしたゆうじです。

シロウさんもおっしゃってるとおり、
hygさんの環境では、
magic_quotes_gpc が On なので、
「'」がエスケープされてるようです。

これならdrop文が実行されることはありませんね。

実行されるには、
条件が整う必要があることを、
あとで解説に書き加えさせていただきます。
ありがとうございました。


私が考えるに、
入力値チェックを省くことで『実行速度の高速化』や
『コードを書く時間の短縮』ができるかもしれませんが、
入力値チェックを行うことで得られる『安心感』のほうが、
数倍価値があるように思います。

サーバーの引越しなどの、
環境の変化に強いスクリプトにもなりますし。
Parent: 1251  reply: 1257 返信 編集 削除

[1257] 大変ありがとうございました。

user: hyg | created: 2004-01-28 01:51
>シロウさん、ゆうじさん
そうだったんですね。
知ってよかったです。確かに自宅からレンタルサーバーに切り替える所だったので引越し先の設定によっては・・・考えるだけでも怖いですね。
ちゃんとチェックをいれるようにします。
大変ありがとうございました。
Parent: 1256  返信 編集 削除
スレッド表示 | フラット表示〕 全トピック 920 件中 690 番目 次≫ ≪前
ページの一番上へ
Googleグックマークに登録 Yahooグックマークに登録 livedoorクリップに登録 @niftyクリップに登録 はてなブックマークに登録 deliciousに登録 Buzzurlに登録 FC2ブックマークに登録
最近更新された掲示板トピックス
管理人Blog
Yahoo Search

最近更新したNote
PHPマニュアル
今日のブックマーク
PHPマニュアル関数検索
関数名を入力し検索ボタンをクリック↑