0

私は自分の寄付フォームが XSS から安全であるかどうかについて、非常に神経質になっています (XSS に関する記事を読みすぎたのかもしれません)。PayPal が提供するボタン ジェネレーターを使用してページに挿入しましたが、name 属性 (PayPal の html 値の 1 つ) として 'item_name' 値を持つ select 要素も追加しました。

つまり、このように:

<select name="item_name">
<option>...</option>
...
</select>

私の最初の懸念は、寄付ボタンを保存済みボタンとしてアカウントに保存していて、PayPal は、提供されたコードを変更せずにページに「そのまま」配置するように指示しているため、それで問題ないかどうかです。私はそれが自明であることを知っていますが、それは単なる生意気な選択要素であり、ユーザーエクスペリエンスを向上させます:P. それは大丈夫ですか?

私が尋ねたいもう1つの質問は、PayPalが私に与えたフォームのaction属性を、htmlspecialchars()を使用して選択要素の値をサニタイズするコントローラーの関数を指すようにする必要があるかどうかです(そのような選択要素をチェックすることさえ必要ですか?目的?)、そしてその関数でどうにかして PayPal の URL を指し示していますか?

私の Web サイトには、XSS フィルタリングを適用するメールフォーム以外に他のフォームはありませんが、この PayPal フォームは、どのように保護する必要があるかについて混乱しています。

4

2 に答える 2

1

PayPal フォームを表示している HTML ページを変更するオプションがあるバックエンドに侵入者がアクセスしない限り、XSS を使用して PayPal フォーム (html) を変更することはできません。ただし、この場合、PayPal フォームは心配する必要はありません。ところで、この場合と同じように考えても問題ありません。セキュリティが第一です。

于 2013-11-05T19:21:22.957 に答える
1

クライアントからの入力を取得して Web サイトに表示しない場合は、心配する必要はありません。

XSS の 2 つの主なケースは、データベース ベースと要求ベースです。データベースベースのシステムでは、攻撃者は公開されているフィールド (コメント フォームなど) に悪意のあるコードを送信します。次に、このフォームからのデータが表示されるたびに、データベースが適切にサニタイズされていないと仮定して、コードが実行されます。

もう 1 つの方法は、GET リクエストによる XSS です。攻撃者は、URL のパラメーターとして悪意のあるコードを含むサイトへのリンクを被害者に送信します。このパラメーターがページに表示され、適切にサニタイズされていない場合、XSS が発生する可能性があります。

echo "You just bought a " . $_GET['itemname'];

あなたの場合は心配する必要はありません。最初にコントローラーに送信してサニタイズする必要はありません。PayPal がそれを処理します。

追記: メールフォームの XSS について心配する必要はありません。Javascript はメールクライアントによって実行されません。心配する必要があるのはヘッダーインジェクションです。

于 2013-11-05T19:09:48.140 に答える