元スレ【PHP】下らねぇ質問はID出して書き込みやがれ 86
php覧 / PC版 /みんなの評価 :
151 = :
「違和感」を感じるかは、
セキュリティを重視するか、
セキュリティを軽視したコードを書くかの主観の問題。
セキュリティを重視すれば違和感を感じない。
毎月のようにある Web アプリの XSS 脆弱性は、
まったくエスケープしていないのではなく、
出力時にエスケープしているため。
152 = :
自分はフレームワークでも >>142 みたいのを入れてるよ
155 = :
XSS 脆弱性を出す人はみんなそう言うんだよ
157 = :
>>151
出力時にエスケープしているのにXSS 脆弱性があるってのはどういう状況?
できれば解説お願いします。
単に「うっかりミスが出やすい」という話?
158 = :
セキュリティ云々じゃなくて単純に変なだけでしょ
とにかく$_GET $_POSTは有無をいわさずエスケープっておかしいよ
入力値はまずチェック(バリデーション)からはいるでしょ?
わざわざエスケープ済みのデータを基準にしてチェックするわけ?
入力時エスケープにするとしてもタイミングが悪いよね?
やるとしてもデータ格納直前にやるべきでない?
160 = :
ううむ・・・
色々調べてみたけど
入力時エスケープによって脆弱性が生まれると主張する人も結構いるね
161 = :
htmlspecialcharsは表示直前
DBに入れるのは受け取った生のデータが基本だろ
162 = :
もちろんSQLインジェクション用のエスケープはするよ
163 = :
たぶんうっかりミスで過去にひどい目にあったんだろ。
164 = :
「htmlspecialcharsは表示直前」だと「うっかり」忘れる。
世の Web アプリの XSS 脆弱性のほとんどはこの「うっかり」。
だから、最初の段階でエスケープ。
従来のソフトウェア工学的には変かもしれないけれど、
人間工学的には必要。
165 = :
議論がループしている。
>>142- から再読を。
166 = :
ただの個人の主張をさも学問ぶるとか。。
167 = :
うっかりミスというかルール作りすればそんなのおきないでしょ
たとえば文字列出力時は
function es($str) {
echo htmlspecialchars($str, ENT_QUOTES);
}
es("<strong>ほげー</strong>");
っていう風にやるとか
voidにしたけどStringにして
echo es("<strong>ほげー</strong>");
にするとか
必ず何かを通すようにルール作りしとけばよい
168 = :
うっかりDBパスワードをechoしてしまうかもしれないからDBは使用厳禁ってか?
169 = :
>>167
たぶんそのルールを忘れるって事だと思うぞ。
議論は平行線のままだろうな。
厳密なコーディング規約を作れば良い
→ルールを守らない奴がでてくる
しっかりテストすれば良い
→テストに抜けがあるかもしれない
こういう事だろ?
170 = :
>>169
コードレビューとかしないの?
172 = :
じゃ最初の段階でエスケープするのは絶対忘れないの?
173 = :
>>172
子供じゃないんだから…。
「一か所に入れるだけ」というルールは守られやすいし、
コードレビューでも一か所を見るだけだから
見落としの可能性は極めて低いでしょう?
その逆に、表示直前だと、ページ数が数百、
出力箇所が数千ある場合、
見落とす確率が非常に高くなるよね。
そして、それこそが Web アプリの脆弱性なんですよ。
174 = :
規模が大きいとエスケープの確認するだけで数時間いるかもね
175 = :
その数時間を 20 回、100 回と繰り返せば、確実に見落とすから。
176 = :
設計がヘボいからそういう考えに陥る
177 = :
>>176
ヘボくない設計って?
178 = :
ウェブアプリの脆弱性君
お前のアプリケーションは入力データをそのまま出力するだけなのか
信頼しないデータは入力されたものだけなのか
次のスクリプトを読んで>>142が無価値なものだと気付こうぜ
<?php $uri = $_GET['uri']; $filename = apache_lookup_uri($uri)->filename; ?>
URI <?php echo $uri; ?> に対するファイル名は <?php echo $filename; ?> です。
例外処理は本質じゃないので省いてあります
180 = :
たまに>>142みたいなの湧くけど
HTML以外への出力、例えばメールとかPDFとかに乗っける場合は
わざわざ元に戻すのかな?
181 = :
マクロ用意しとけばうっかりなんておきねえよ
182 = :
>>178
これの実行結果はどうなるの
183 = :
>>180
まあ、そうだろうな。
意外と、メールはすべてHTMLメールで、
PDF出力はHTML2PDF的なものを使う、
とかかも知れんけど。
185 = :
俺はその手のはテーブル構造を書いたArrayをまわすようにしてる。
でも、値によって保存方法のルールが複雑なら、別に愚直に長く
書いてもいいと思うぜ。
187 = :
SQLスレでやれ
188 = :
>>186
where 1は全件検索
そのSQLだと
select * from 物件表 where 1 or 市町村id=1
とかになるから結局全件表示されちゃうんじゃね?
見直したほうがいいよ
195 = :
>>188
ぼけてた・・・andじゃなくてorだもんな。
みなさん、間違った回答をしてしまいすみませんでした。
196 = :
>>180
そう。戻す。
HTML 出力時に「わざわざ」直前にエスケープして
それを忘れて XSS 脆弱性を出すように、
メールや PDF の「わざわざ」直前にデエスケープして
それを忘れて脆弱性じゃないバグの方を選択する。
それに、HTML より、メール、PDF の方が出力箇所が圧倒的に少ないから。
だから脆弱性を重視するかどうかなんだって。
198 = :
標準機能じゃ満足にできないことをやるためのもの
ペイントじゃうまくできないからPhotoshopいれたり
CADやりたいけど標準じゃないから新しく入れたりみたい
200 = :
>>199
なぜ自分で試してみないんだ?
試した上で疑問点を質問しなさい。
みんなの評価 :
類似してるかもしれないスレッド
- 【PHP】下らねぇ質問はID出して書き込みやがれ 80 (1001) - [98%] - 2009/2/18 6:30 ○
- 【PHP】下らねぇ質問はID出して書き込みやがれ 85 (1001) - [98%] - 2009/7/31 4:07 ○
- 【PHP】下らねぇ質問はID出して書き込みやがれ 96 (1001) - [98%] - 2010/7/22 7:47
- 【PHP】下らねぇ質問はID出して書き込みやがれ 76 (1001) - [98%] - 2008/12/6 22:36 ○
- 【PHP】下らねぇ質問はID出して書き込みやがれ 82 (1001) - [98%] - 2009/4/6 19:33
- 【PHP】下らねぇ質問はID出して書き込みやがれ 83 (1001) - [98%] - 2009/4/27 3:17 ○
- 【PHP】下らねぇ質問はID出して書き込みやがれ 84 (1001) - [98%] - 2009/6/15 21:04 ○
- 【PHP】下らねぇ質問はID出して書き込みやがれ 81 (1001) - [98%] - 2009/3/7 14:17 ○
- 【PHP】下らねぇ質問はID出して書き込みやがれ 89 (1001) - [98%] - 2009/11/13 23:03
- 【PHP】下らねぇ質問はID出して書き込みやがれ 88 (1001) - [98%] - 2009/10/12 1:52
- 【PHP】下らねぇ質問はID出して書き込みやがれ 87 (1001) - [98%] - 2009/9/15 18:32
- 【PHP】下らねぇ質問はID出して書き込みやがれ 126 (1001) - [96%] - 2013/3/19 13:15
- 【PHP】下らねぇ質問はID出して書き込みやがれ 116 (1001) - [96%] - 2012/3/21 18:01
- 【PHP】下らねぇ質問はID出して書き込みやがれ 106 (1001) - [96%] - 2011/6/3 5:17
- 【PHP】下らねぇ質問はID出して書き込みやがれ 136 (936) - [96%] - 2014/9/18 12:45
- 【PHP】下らねぇ質問はID出して書き込みやがれ 97 (1001) - [96%] - 2010/9/18 2:01
- 【PHP】下らねぇ質問はID出して書き込みやがれ 94 (1001) - [96%] - 2010/4/20 19:31
トップメニューへ / →のくす牧場書庫について