1

私のサイトにお問い合わせフォームがあります。「許可された」件名のドロップダウンがあります。ただし、ドロップダウン フォームにない件名のメールがフォームから送信されてきました。

フォームは ExpressionEngine テンプレートであり、「/contact/submit」などの URL セグメントを追加してフォーム自体に送信します。テンプレートは送信セグメントをチェックし、電子メールを作成して送信する EE プラグインに値を送信します。フォームのメソッドは POST です。

件名のドロップダウンをどのように回避できますか?

4

4 に答える 4

2

おそらく起こっていることは、彼らが自分の主題を注入しているということです. ドロップダウン値が文字列で、そのまま使用している場合、独自のサブジェクトを使用するのは非常に簡単です。

修正として、数値 ID を各ドロップダウン値に関連付けてから、バックエンドで可能な値を切り替えることができます。たとえば (PHP の場合)

<?php
$reject = false;
if(isset($_POST['subject']))
{
    switch(intval($_POST['subject']))
    {
        case 1: // General inquiry:
           $subjectStr = "General Inquiry";
           break;
        ...
        default: 
           $reject = true;
           break;
    }
}
else
{
    $reject = true;
}
if(!$reject)
{
    // Process email
}
?>
于 2013-02-01T15:30:10.157 に答える
1

あなた (またはブラウザやスパム スクリプト/アプリ) は、ほとんど何でもサーバーに "POST" できます。何が有効かを判断し、入力に基づいてアクションを実行する (または要求を無視する) のは、Web アプリケーション次第です。EE テンプレートをもう少し堅牢になるように書き直すことを検討することをお勧めします (つまり、アクションを実行する前に入力を検証します)。

于 2013-02-01T15:29:11.757 に答える
1

ブラウザに表示されるものはすべて、何らかの方法で危険にさらされる可能性があります。ドロップダウンが表示され、視覚的には安全に見えるかもしれませんが、そうではありません。そして、キャプチャなどのセキュリティ メカニズムがない場合は、10 倍悪くなります。その場合、誰でもフォームのアクションを指すスクリプトを作成できます。そうでなければ、私が言及しているように、人々は「十代」の方法に固執する可能性があります. Firefox には firebug と呼ばれる拡張機能があり、html と、特定のケースではドロップダウン メニューを変更できます。Chrome にはデフォルトで統合されています (f12 を押します)。最善の選択肢は、セキュリティ メカニズムを作り直すことです。

于 2013-02-01T15:32:21.277 に答える
1

はい。これを実行してボットを作成するのは非常に簡単です。Captcha や MintEye に似たものは、ボットベースのスパムを回避するための現在のベスト プラクティスです。

于 2013-02-01T15:29:55.377 に答える