私的良スレ書庫
不明な単語は2ch用語を / 要望・削除依頼は掲示板へ。不適切な画像報告もこちらへどうぞ。 / 管理情報はtwitterでログインするとレス評価できます。 登録ユーザには一部の画像が表示されますので、問題のある画像や記述を含むレスに「禁」ボタンを押してください。
元スレ+ JavaScript の質問用スレッド vol.121 +
JavaScript スレッド一覧へ / JavaScript とは? / 携帯版 / dat(gz)で取得 / トップメニューみんなの評価 :
レスフィルター : (試験中)
>>300
もしかしてシングルクォートの話してる?
http://d.hatena.ne.jp/ockeghem/20070510/1178813849
> 私が、シングルクォート「'」もエスケープ対象に加えているのは、
> 属性値をシングルクォートで囲むケースが少なからず見受けられるからで、
> かならずダブルクォート「"」で囲むように徹底されていれば、このガイドラインは必要ありません。
まあ、あったほうがいいよね。
もしかしてシングルクォートの話してる?
http://d.hatena.ne.jp/ockeghem/20070510/1178813849
> 私が、シングルクォート「'」もエスケープ対象に加えているのは、
> 属性値をシングルクォートで囲むケースが少なからず見受けられるからで、
> かならずダブルクォート「"」で囲むように徹底されていれば、このガイドラインは必要ありません。
まあ、あったほうがいいよね。
Underscpreはこうらしいね。 これだけやっておけば大丈夫みたい。
http://stackoverflow.com/questions/6020714/escape-html-using-jquery
There's also _.escape in Underscore, that does it like this:
// List of HTML entities for escaping.
var htmlEscapes = {
'&': '&',
'<': '<',
'>': '>',
'"': '"',
"'": ''',
'/': '/'
};
// Regex containing the keys listed immediately above.
var htmlEscaper = /[&<>"'\/]/g;
// Escape a string for HTML interpolation.
_.escape = function(string) {
return ('' + string).replace(htmlEscaper, function(match) {
return htmlEscapes[match];
});
};
http://stackoverflow.com/questions/6020714/escape-html-using-jquery
There's also _.escape in Underscore, that does it like this:
// List of HTML entities for escaping.
var htmlEscapes = {
'&': '&',
'<': '<',
'>': '>',
'"': '"',
"'": ''',
'/': '/'
};
// Regex containing the keys listed immediately above.
var htmlEscaper = /[&<>"'\/]/g;
// Escape a string for HTML interpolation.
_.escape = function(string) {
return ('' + string).replace(htmlEscaper, function(match) {
return htmlEscapes[match];
});
};
訂正版はこれでいいのかな。
function escapeHTML(str) {
return str.replace(/&/g, "&").replace(/"/g, """).replace(/</g, "<").replace(/>/g, ">").replace(/'/g, "''").replace(/\//g, "'/");
}
function escapeHTML(str) {
return str.replace(/&/g, "&").replace(/"/g, """).replace(/</g, "<").replace(/>/g, ">").replace(/'/g, "''").replace(/\//g, "'/");
}
仕様を読めば分かる事を一々聞くな
仕様も読めない奴が一人前な口を叩くな
この後の展開は読めてる
「知らないんだろ?じゃあ、問題ないってことだな」
煽ってもおまえに教える気は全くないがね
仕様も読めない奴が一人前な口を叩くな
この後の展開は読めてる
「知らないんだろ?じゃあ、問題ないってことだな」
煽ってもおまえに教える気は全くないがね
それじゃだめ
↓
なんで?
↓
いいやだめだめ
↓
だからなんで?
↓
だめったらだめ
↓
駄目だこいつ話にならねぇw
↓
なんで?
↓
いいやだめだめ
↓
だからなんで?
↓
だめったらだめ
↓
駄目だこいつ話にならねぇw
仕様によると最低限のエスケープはこれだけらしい。
http://d.hatena.ne.jp/ockeghem/20070510/1178813849
> W3CのHTML4.01の仕様を見ると、~略~すなわち、最低限のエスケープだと以下のようになります。
>
> エスケープ対象項目 エスケープ対象文字
> 要素内容(一般のテキスト) 「<」、「&」
> 属性値 「"」、「>」、「&」
これ+ブラウザのバグ対策か。
http://d.hatena.ne.jp/ockeghem/20070510/1178813849
> W3CのHTML4.01の仕様を見ると、~略~すなわち、最低限のエスケープだと以下のようになります。
>
> エスケープ対象項目 エスケープ対象文字
> 要素内容(一般のテキスト) 「<」、「&」
> 属性値 「"」、「>」、「&」
これ+ブラウザのバグ対策か。
>>308
> この後の展開は読めてる
> 「知らないんだろ?じゃあ、問題ないってことだな」
普通にその通りの展開だよw
でも先が読めてても、対策出来てないんじゃ
片手落ちだけどね。
お前がパンチを出してくるのは読めていた!(勝ったつもり)
そしてパンチで殴られる。(笑)
先が読めてても、殴られる例。
> この後の展開は読めてる
> 「知らないんだろ?じゃあ、問題ないってことだな」
普通にその通りの展開だよw
でも先が読めてても、対策出来てないんじゃ
片手落ちだけどね。
お前がパンチを出してくるのは読めていた!(勝ったつもり)
そしてパンチで殴られる。(笑)
先が読めてても、殴られる例。
先が読めてるくせに、その先を行けないっていうのは、
言い返せないからってことだと思うw
そういう反論するのはわかっていたが、
その反論の反論はできないってことだから。
言い返せないからってことだと思うw
そういう反論するのはわかっていたが、
その反論の反論はできないってことだから。
なんか向こうでこういうこと言ってる奴がいるわw
> >>132が向こうのスレにコピペされてるんだが、誰がやったんだ?
> 迷惑だから止めてくれ
こっちの話を移動させようとしてるの見え見えだってのに
見苦しいやつだなw
> >>132が向こうのスレにコピペされてるんだが、誰がやったんだ?
> 迷惑だから止めてくれ
こっちの話を移動させようとしてるの見え見えだってのに
見苦しいやつだなw
>>316
ベンチマークするとそっちのほうが
速かったりするのはなんでなんだろうか?
キャッシュの関係なのかな?
ループが単純=CPUの1次キャッシュに入りきる
ループが複雑=CPUの1次キャッシュに入りきらない
ベンチマークするとそっちのほうが
速かったりするのはなんでなんだろうか?
キャッシュの関係なのかな?
ループが単純=CPUの1次キャッシュに入りきる
ループが複雑=CPUの1次キャッシュに入りきらない
>>288,289
固定の文字列って何?ハードコーディングって用語も知らないの?
文字列は文字列であり変数に入れようが入れまいが代わりはない
ハードコーディングされた文字列だから安全って思い込みはやめるべきだ
"<div onclick='alert(1);'>click</div>"こういうのは文字列じゃないとか抜かすなよ
>Q. innerHTMLは絶対に使ったらダメなの?
>A. XSSが起きるような使い方をしなければ使って問題はありません。
つまり自分でDOMで構築するよりもリスクが高い事を認めているってことだよね
お前が主張する前にもう言っただろ
innerHTMLはパフォーマンスが悪くDOMを壊す
固定の文字列って何?ハードコーディングって用語も知らないの?
文字列は文字列であり変数に入れようが入れまいが代わりはない
ハードコーディングされた文字列だから安全って思い込みはやめるべきだ
"<div onclick='alert(1);'>click</div>"こういうのは文字列じゃないとか抜かすなよ
>Q. innerHTMLは絶対に使ったらダメなの?
>A. XSSが起きるような使い方をしなければ使って問題はありません。
つまり自分でDOMで構築するよりもリスクが高い事を認めているってことだよね
お前が主張する前にもう言っただろ
innerHTMLはパフォーマンスが悪くDOMを壊す
>>303
エスケープ
var DIV = document.createElement('div');
function escapeHTML(str) {
DIV.textContent = str;
return DIV.innerHTML;
}
というやり方もあるんじゃないか?
ただし、この関数の場合
escapeHTML(str1) + escapeHTML(str2) の結果が
escapeHTML(str1 + str2)
に等しくならない場合があるブラウザがあると困るかもしれない
ちなみに逆変換はこれでいけるかな?
function unescapeHTML(htmlStr) {
DIV.innerHTML = htmlStr;
return DIV.textContent
}
エスケープ
var DIV = document.createElement('div');
function escapeHTML(str) {
DIV.textContent = str;
return DIV.innerHTML;
}
というやり方もあるんじゃないか?
ただし、この関数の場合
escapeHTML(str1) + escapeHTML(str2) の結果が
escapeHTML(str1 + str2)
に等しくならない場合があるブラウザがあると困るかもしれない
ちなみに逆変換はこれでいけるかな?
function unescapeHTML(htmlStr) {
DIV.innerHTML = htmlStr;
return DIV.textContent
}
innerHTMLはパフォーマンスが悪くDOMを壊す(キリッ
世界中で使われてるのに?
jQueryにも使うなって言ってこいよ
変な宗教か何かやってるのかな?
世界中で使われてるのに?
jQueryにも使うなって言ってこいよ
変な宗教か何かやってるのかな?
文字列操作で構築、変数部分はエスケープって一昔前に戻った感じだね
DOMを壊すって曖昧な表現だな
innerHTMLを使ってもDOMがぶっ壊れたりしないから良く分からんよ
innerHTMLを使ってもDOMがぶっ壊れたりしないから良く分からんよ
ごちゃごちゃとエスケープ処理を作るよりも
こういう>>319ハックのほうが個人的には好きだな
こういう>>319ハックのほうが個人的には好きだな
>賢い方法だが
ブラウザの挙動すら理解できてない馬鹿が一匹沸いたな
ブラウザの挙動すら理解できてない馬鹿が一匹沸いたな
一人で回答頑張ってる奴がいるみたいだから、このスレの回答は全てそいつ一人に任せればいいんじゃない?
そいつの認める奴だけが回答する権利を持つと言わんばかりの有り様だし
そいつの認める奴だけが回答する権利を持つと言わんばかりの有り様だし
>>318
> つまり自分でDOMで構築するよりもリスクが高い事を認めているってことだよね
DOMで構築するほうがリスクが高いよ。
DOMで構築するとコードが長くなる。
コードが長くなるということはバグを入れる可能性が高くなる。
つまりバグを入れるリスクが高い。
> つまり自分でDOMで構築するよりもリスクが高い事を認めているってことだよね
DOMで構築するほうがリスクが高いよ。
DOMで構築するとコードが長くなる。
コードが長くなるということはバグを入れる可能性が高くなる。
つまりバグを入れるリスクが高い。
>>331
それ、いいね。
じゃあ、君の意見に賛成する俺と
君は回答しないことにしよう。
多分君の危険に賛成しない人はいるだろう。
そういう人は回答してもいいけど、
少なくとも俺と君、この二人はもう絶対回答しないよ
それ、いいね。
じゃあ、君の意見に賛成する俺と
君は回答しないことにしよう。
多分君の危険に賛成しない人はいるだろう。
そういう人は回答してもいいけど、
少なくとも俺と君、この二人はもう絶対回答しないよ
>>319
DOM使ってエスケープするのは、可能といえば可能で
意外と遅くないらしいんだけど、やり過ぎだと思うよ。
仕様も実装も簡単なのに、ブラックボックスにするのがね。
あとサーバーサイドで使う時も考えると、
純粋なJavaScript(ECMAScript)の範囲にしておきたいし。
もちろん、DOMベースでやるよりも、文字列ベースのほうが
少ないメモリで実行できるので速くなる。
DOM使ってエスケープするのは、可能といえば可能で
意外と遅くないらしいんだけど、やり過ぎだと思うよ。
仕様も実装も簡単なのに、ブラックボックスにするのがね。
あとサーバーサイドで使う時も考えると、
純粋なJavaScript(ECMAScript)の範囲にしておきたいし。
もちろん、DOMベースでやるよりも、文字列ベースのほうが
少ないメモリで実行できるので速くなる。
>>318
> "<div onclick='alert(1);'>click</div>"こういうのは文字列じゃないとか抜かすなよ
あほじゃね? どこのアホがonclickなんて文字を書くんだよ。
そんなマヌケがいたとしたら、createElement使っても
onclick書くだろw
どんだけおっちょこちょいなんだw
> "<div onclick='alert(1);'>click</div>"こういうのは文字列じゃないとか抜かすなよ
あほじゃね? どこのアホがonclickなんて文字を書くんだよ。
そんなマヌケがいたとしたら、createElement使っても
onclick書くだろw
どんだけおっちょこちょいなんだw
論点がずれてる。
JavaScriptを文字列の中に書くのはXSSじゃない。
それは単にaddEventListnerした要素にすぎない。
問題なのは文字列の中にJavaScriptを埋め込むことではなく
文字列の中にXSSを埋め込むこと。
文字列の中にXSSを埋め込むのは相当難しい。
JavaScriptを文字列の中に書くのはXSSじゃない。
それは単にaddEventListnerした要素にすぎない。
問題なのは文字列の中にJavaScriptを埋め込むことではなく
文字列の中にXSSを埋め込むこと。
文字列の中にXSSを埋め込むのは相当難しい。
俺がいいたいのは>>289のようなアホなコードを書く奴は何を書いてもXSSを起こすだろだろってことです
仕方ないよ。
innerHTMLなんて、サーバーサイドのechoや
document.writeと同じで、エスケープすればいいだけの話なのに、
エスケープしなかったらXSSになるかもしれないから使うなって
意味不明なことを言ってるようなやつだからね。
頭が悪い奴はいくら言っても理解できない。
innerHTMLなんて、サーバーサイドのechoや
document.writeと同じで、エスケープすればいいだけの話なのに、
エスケープしなかったらXSSになるかもしれないから使うなって
意味不明なことを言ってるようなやつだからね。
頭が悪い奴はいくら言っても理解できない。
ORMでデータを保存する時、
hoge.save()
のようなメソッドを発行すると思います
それによりajaxのリクエストが投げられるでしょう
しかし複数のデータを保存した場合、たとえばオブジェクトが100個あると、
100回もリクエストが発行されるのでしょうか?
hoge.save()
のようなメソッドを発行すると思います
それによりajaxのリクエストが投げられるでしょう
しかし複数のデータを保存した場合、たとえばオブジェクトが100個あると、
100回もリクエストが発行されるのでしょうか?
>>346
フレームワークによると思うが
複数のリクエストをまとめる仕組みがあるだろう。
そういうたぐいのフレームワークについて
俺は詳しくないが、そのような仕組みを考えたことはある。
俺程度が思いつくものなのだから、普通にあると思う。
フレームワークによると思うが
複数のリクエストをまとめる仕組みがあるだろう。
そういうたぐいのフレームワークについて
俺は詳しくないが、そのような仕組みを考えたことはある。
俺程度が思いつくものなのだから、普通にあると思う。
>>330
チョコの方持つなよ
チョコの方持つなよ
前へ 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 次へ / 要望・削除依頼は掲示板へ / 管理情報はtwitterで / JavaScript スレッド一覧へ
みんなの評価 : 類似してるかもしれないスレッド
- + 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
トップメニューへ / →のくす牧場書庫について