1
ゲームに非常に遅い -各プロパティの代わりにオブジェクトをエンコードする
私は今、自分のウェブサイトでXSSについて考え始めました。残念ながら、いくつかの場所で私はAjax経由で渡すオブジェクトを作成しました。
var params = {};
params.firstName = $("#firstName").val();
params.lastName = $("#lastName").val();
$.ajax({url:url, data:params}).done();
誰でも実行可能なJSで記述できます。さて、私が読んだから、私は簡単にこれを行うことによって、この状況を改善することができます
var params = {};
params.firstName = encodeURIComponent($("#firstName").val());
params.lastName = encodeURIComponent($("#lastName").val());
$.ajax({url:url}, data:params).done();
しかし、その代わりに、私が作成したすべての場所のオブジェクトを経由してencodeURIComponentでのすべてのフィールドをラップで---どのような方法があります各プロパティの代わりに単にパラメータを直接エスケープするには?
ご協力いただきありがとうございます。
更新:コンテンツタイプ:application/x-www-form-urlencoded; charset = UTF-8の場合、フォームデータは自動的にエンコードされます。
このような何かがうまくいく
私はjqueryのは、実際にサーバ - 上のすべてのこれらの文字をエスケープ、しかし、セキュリティのために、このあなたのための – aw04
を行いだと思いますクライアント側ではありません。クライアント上でそれをエスケープすると、XSSはより困難になりますが、それはまだ完全に可能であり、それほど難しくありません。 – nicovank
@nicovank - はい、非常に良い点。すべてのエンドポイントも同様に保護されます。私はUIがXSSに対していくつかの措置を講じるべきだと思ったので、これを追加した措置としてやっていました。 – fumeng