元スレ+ JavaScript の質問用スレッド vol.121 +
JavaScript覧 / PC版 /みんなの評価 :
251 = :
まずエスケープする所は、ユーザーが入力した文字。
固定値はエスケープしないで出力しても安全。
これがサーバーサイドの常識。
クライアントサイドでも同じで、
innerHTMLに固定値を代入するときは
何の問題も起きない。リスクもない。
252 = :
全然常識じゃない
253 = :
お前が意味のないコード書いてるだけ。
意味があることだけやれや
過保護やろう
254 = :
ママーこわいよ。ヒューマンエラー怖いよー
リスクがー、リスクがー。
バグかいても、動くコードかいてー
リスクゼロじゃなきゃだー
255 = :
innerHTMLに代入する文字が
固定の文字列ならリスクゼロだよw
256 = :
たぶん「固定の文字列」がわからないんだよ
257 = :
>>255
innerHTMLを選択する理由もゼロになるな
258 = :
innerHTML君はいい加減、黙ってくれないかな
言いたいことは全ていっただろうに、いつまで続けるというのか
259 = :
>>257
コードがシンプルになるよ。
innerHTML = '<table id="tbl"><tr><td class="first">なんとか</td></tr></table>';
これをinnerHTMLを使わないで書こうとすると
複雑になるからね。つまりコストが掛かってバグを起こすリスク(笑)が高くなる。
>>256
なるほど。固定の文字列がわからないのか。
上の、'<table>~</table>'のことだよ。
値が変わらないからXSSが起きるリスクがない
260 = :
>>258
> いつまで続けるというのか
え? それ言っておかないとダメ?
反論する人がいる限り叩き潰しに来るし、
この話題が出るたびに再登場するよ。
ちゃんと、いつまで続けるか言ったので
今度から聞かないでね。
262 = :
なんとかの部分を可変にしてほしいという変更依頼があったらどうする?
263 = :
ここまで低次元だという事がないな
264 = :
>>262
エスケープする。サーバーサイドの常識(笑)だろ
265 = :
エスケープするの忘れるかもしれないから
echo禁止。ユーザーが入力したものを表示するの禁止。
266 = :
変更依頼があって、そこからやるのか…
267 = :
>>263
それだけ過保護が多いんだろ。
うちの会社は馬鹿ばかりだから規則を守れ。
理由は考えるなお前らはただ規則を何も考えずに守ってればいいんだ。
268 = :
>>266
何か問題?
低次元の人は何考えてるのかわからんので、
ちゃんと書こうね。
269 = :
>>215あたりがこいつの考えの根底にあるものか
テキスト操作に拘り過ぎてDOMの概念がないんだな
270 = :
>>267
理由を理解できないおまえにいわれたくないわ
271 = :
>>264
ネタだと思ってたらお前は絶対にサーバサイドでコード書かないほうがいいよ
272 = :
>>268
依頼がなくても最初から全部エスケープしていればいいだろ
innerHTML = escapeHTML('<table id="tbl"><tr><td class="first">なんとか</td></tr></table>');
ドヤッ!
273 = :
>>270
みんなお前が馬鹿だってわかってるから
もうやめたら?w
>>271
へー。あんたエスケープしないんだ?
ユーザーが入力した文字をエスケープしないんだねw
274 = :
>>271
まさか、まだサーバーサイドで固定値をエスケープしろとか言ってんの?
echo htmlspecialchars('<table id="tbl"><tr><td class="first">なんとか</td></tr></table>', ENT_QUOTES, 'utf-8');
なるほど、こういうコード書けと。
あんた、バグってますよw
275 = :
>>273
会話のキャッチボールできないのかな?
まともに相手してもらえなくなりますよ
276 = :
>>274
逆にいちいち区別するほうが変だろ
常にしておけばいい
277 = :
>>275
相手しなくていいってw
どうせお前だけだろ? 意味もなくinnerHTML使うなって言ってるのは。
俺はしっかり言った。代入するのが固定の文字列であれば
innerHTMLを使うリスクは0だ。
固定値じゃない(ユーザーが入力する文字)ならばエスケープすればいい。
さあ、反論は?
ボール投げたから、ちゃんと投げ返してね。
278 = :
>>276
だからバグってるだろw
正しく動いてないだろw
279 = :
>>278
いや、そのコードかいたの俺じゃないし
280 = :
バグっていても、リスクが0なら
そっちの方がいいだろう?
281 = :
初めてだわ、場合によってサニタイズするって考えの人
LTでも勉強会でも見たことないので是非スライドシェアに投稿してほしいね
282 = :
>>276
「常にしておく」って誰かから聞いたのをそのまま言ってるだけ?
常にしておくっていうのは、変数を出力する時の話であって
固定の文字列の部分は関係ないよ。
ちゃんと理解してないで、言葉だけ覚えてるから
そういう間違いをするんだよ。
283 = :
え?
284 = :
>>281
あー、わかったわ。お前が何を勘違いしているのか。
全部エスケープしろって言われて、
echoで出す文字全てをエスケープしろって思ってるだろ?
echo htmlspecialchars('<table id="tbl"><tr><td class="first">$nantoka</td></tr></table>', ENT_QUOTES, 'utf-8');
みたいに。
あのね、よく聞いてね。
みんなが言ってる「常にエスケープしろっていうのは」
<table id="tbl"><tr><td class="first"> <?php echo htmlspecialchars('$nantoka', ENT_QUOTES, 'utf-8') ?> </td></tr></table>;
変数の部分だけだから。
ここまで次元が低いと、降りるまで時間がかかるわw
285 = :
>>284のコードを
innerHTMLの話に戻すと
innerHTML = '<table id="tbl"><tr><td class="first">なんとか</td></tr></table>';
これはエスケープする必要はない。固定の文字列であり変わることがなくて安全だから。
「なんとかの部分を変えたい」という話であれば、こう。
innerHTML = '<table id="tbl"><tr><td class="first">' + escapeHTML(nantoka) + '</td></tr></table>';
286 = :
>>284
あんたが一人で騒いでるだけだろう
俺は>>215と書いたのに勝手に脱線してるのはお前なんだよ
287 = :
今頃、変数の前後の固定の文字列まで含めて
エスケープしているスライドを探してるのかな?w
288 = :
>>286
別に騒いでるのが俺だけってことでもいいよ。
俺の言ってることが間違っていると言わないなら
全然問題なし。
で、固定の文字列は安全です。
290 = :
http://img.2ch.sc/ico/nida.gif
casperjsをインストールして試そうとすると以下のエラーがでてうまく動かないです。
【環境】OS:Win7pro 64bit
【何をしたのか】
コマンドプロンプトでcasperjsを試そうとすると以下のエラー?がでます
【エラーメッセージ】
C:\Users\*******>casperjs --version
1.1.0-beta3
Unsafe JavaScript attempt to access frame with URL about:blank from frame with URL file:///C:/jstools/casperjs-1.1-beta3/bin/bootstrap.js. Domains, protocols and ports must match.
【期待する結果】
PhantomJSとCasperJSをうまくインストールしたいです。
エラーの原因がわかる方、いらっしゃいましたら宜しくお願いします。
291 = :
まとめ書いたら、止まったかw
>>290
Displaying message "Unsafe JavaScript attempt to access frame with URL about:blank ...". #1068
http://github.com/n1k0/casperjs/issues/1068
これじゃね?
292 = :
あ、こっちか?
Unsafe JavaScript attempt to access frame in 1.9.8
http://github.com/ariya/phantomjs/issues/12697
293 = :
早くこの辺の話終わんねえかな…
294 = :
>>293
終わったよ。まとめ書いたから止まった。
もう次の話に入ったよ。
295 = :
次からID出すといいかもね
ID出しておくと便利で、うざいやつからの反論が無くなるらしいよ
296 = :
>>295
昨日だったか一昨日だったかは出したんだけどね。
今回は反論を叩きのめそうと思ったので
あえて隠した。どっちにするかは気分次第。
297 = :
http://img.2ch.sc/ico/nida.gif
>>291
ありがとう
なんとなく?読んでみたけど今のところ解決策がない感じ・・・かなぁ
298 = :
ほんとぱたっとやんだなw
やっぱりinnerHTMLを否定していたのは一人だったか。
俺も寝るから、またあしたな。
>>297
どうやらバグみたいだから
一つ前のバージョンに戻すとかしてみればいいんじゃない?
299 = :
一人で頑張るならID出したほうがいいぞ
自演を疑われるぐらいなら初めからID出したほうが信用される
後は各自で判断するだろうさ
300 = :
ようやく向こうのスレが収束したわけだが
> function escapeHTML(str) {
> return str.replace(/&/g, "&").replace(/"/g, """).replace(/</g, "<").replace(/>/g, ">");
> }
これは酷いな
XSSが発生するコードを披露するとは
類似してるかもしれないスレッド
- + JavaScript の質問用スレッド vol.121 + (1001) - [100%] - 2015/1/1 18:30
- + JavaScript の質問用スレッド vol.141 + (881) - [97%] - 2021/4/19 9:00
- + JavaScript の質問用スレッド vol.129 + (926) - [97%] - 2017/7/27 13:45
- + JavaScript の質問用スレッド vol.131 + (1000) - [97%] - 2017/1/25 8:01
- + JavaScript の質問用スレッド vol.120 + (1002) - [97%] - 2014/11/8 1:15
- + JavaScript の質問用スレッド vol.122 + (1004) - [97%] - 2015/2/14 4:45
- + JavaScript の質問用スレッド vol.122 + (116) - [97%] - 2018/5/2 18:30
- + JavaScript の質問用スレッド vol.129 + (981) - [97%] - 2016/5/5 8:16
- + JavaScript の質問用スレッド vol.128 + (1001) - [97%] - 2016/2/26 6:45
- + JavaScript の質問用スレッド vol.131 + (1004) - [97%] - 2018/3/7 13:30
- + JavaScript の質問用スレッド vol.123 + (966) - [97%] - 2020/10/20 2:30
- + JavaScript の質問用スレッド vol.127 + (1001) - [97%] - 2016/2/4 0:15
- + JavaScript の質問用スレッド vol.127 + (160) - [97%] - 2021/7/16 9:30
- + JavaScript の質問用スレッド vol.126 + (952) - [97%] - 2015/11/18 13:15
- + JavaScript の質問用スレッド vol.126 + (348) - [97%] - 2023/1/12 17:00
- + JavaScript の質問用スレッド vol.125 + (1001) - [97%] - 2015/10/7 17:45
- + JavaScript の質問用スレッド vol.123 + (1002) - [97%] - 2015/4/27 23:30
トップメニューへ / →のくす牧場書庫について