0

私はこのチュートリアルに従って簡単なphpコンタクトフォームを作成しました:http: //www.catswhocode.com/blog/how-to-create-a-built-in-contact-form-for-your-wordpress-theme

大きな問題は、このフォーム処理が安全ではないことです。人々がスパムを送信したり、サーバーをハッキングしたりするために使用できると聞いています。

このフォームをより安全にするために必要な基本的な手順は何ですか? 追伸:回避できるのであれば、再キャプチャは使用したくありません...

編集:フォームが「正しい方法」で送信され、変更されたり、サイトをハッキングしたり、他の人にメールを送信したりするために使用されていないことをフィルタリングおよび保護するために使用されるphp関数についての提案が必要です(サイトを使用してスパムを送信する他の人)。strip_slashesを使用する必要がありますか?またはもっと良い方法はありますか?

4

1 に答える 1

1

1 つの方法: 巨大なサイトではない場合、誰もこれを理解したり、時間を割いたりすることはまずありません。

クリック時にトークンを処理するために、いくつかのトリッキーな JS を使用できます。したがって、サーバーは、バックエンドのレンダリング段階で、ページ上のクリック可能/フォーカス可能な要素に token-id を発行します。これらをデータベースまたはデータ ファイルに記録します。次に、ユーザーがクリックして送信すると、onclick() 関数を介して送信された ID を比較できます。ヒューリスティックを適用して、クリックの履歴のペースが適切かどうかを判断することもできます。つまり、トークン ID のハイジャックと自動送信をスクリプト化したとしても、クリック イベント間の時間が自動化されているように見えることを確認できます。最近、Twitter アカウントにサインアップしましたか? 彼らは受動的な人間検出を使用しており、100% 誰にでもできるわけではありませんが、速度が遅く、破るのがより困難です。誰かが本当にあなたのサイトをハッキング/スパムしたいと思うでしょう。

重要なステップ 2:ページが壊れると思われる場合は、奇妙な文字を取り除く/URL エンコードしてください。物事を壊す一般的なものは " と ' と :

別の方法: http://areyouahuman.com/

安っぽいCAPTCHAなしで人類を検証する暗号化された方法を使用している限り、可能です。つまり、ヘッダーも無視しないでください。これらは補完的な方法です。

鍵となるのは、NP 完全問題を作成するのに十分な複雑さを持つことです。http://en.wikipedia.org/wiki/NP-complete

AIが複数の複雑な人間の問題を単独で解決できる日が来ると、リクエストの改ざん以外にも心配する必要があります.

http://louisville.academia.edu/RomanYampolskiy/Papers/1467394/AI-Complete_AI-Hard_or_AI-Easy_Classification_of_Problems_in_Artificial

興味深い研究を行っている別の会社http://www.vouchsafe.com/play-gamesは、RTT をだまして RTT を訓練し、人間だけで解決できるようにするために設計されたゲームを実際に使用しています。

NP 困難な問題に関するすばらしい記事を次に示します。ここで大きな可能性を見ることができます: http://www.i-programmer.info/news/112-theory/3896-classic-nintendo-games-are-np-hard.html

于 2012-04-07T00:44:29.610 に答える