のくす牧場
コンテンツ
牧場内検索
カウンタ
総計:127,647,279人
昨日:no data人
今日:
最近の注目
人気の最安値情報

元スレ【PHP】下らねぇ質問はID出して書き込みやがれ 86

php覧 / PC版 /
スレッド評価: スレッド評価について
みんなの評価 :
タグ : 追加: タグについて ※前スレ・次スレは、スレ番号だけ登録。駄スレにはタグつけず、スレ評価を。荒らしタグにはタグで対抗せず、タグ減点を。
←前へ 1 2 3 4 5 6 7 8 9 10 11 12 次へ→ / 要望・削除依頼は掲示板へ / 管理情報はtwitter

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
なぜ自分で試してみないんだ?
試した上で疑問点を質問しなさい。


←前へ 1 2 3 4 5 6 7 8 9 10 11 12 次へ→ / 要望・削除依頼は掲示板へ / 管理情報はtwitterで / php一覧へ
スレッド評価: スレッド評価について
みんなの評価 :
タグ : 追加: タグについて ※前スレ・次スレは、スレ番号だけ登録。駄スレにはタグつけず、スレ評価を。荒らしタグにはタグで対抗せず、タグ減点を。

類似してるかもしれないスレッド


トップメニューへ / →のくす牧場書庫について