web-dev-qa-db-ja.com

トランジェントを使ってキャプチャを保存する

私はちょうどこのようなものがうまくいくかどうか疑問に思いました:

  • ページにフォームが表示され、その中にキャプチャコードが含まれています。
  • このフォームが生成されると、 トランジェント がキャプチャコードを格納するために設定されます。
  • 訪問者がフォームを送信する
  • 送信後、$_POST['captcha']はデータベースからのトランジェントと比較されます。一致した場合は成功、それ以外の場合は失敗
  • トランジェントを削除する

どう思いますか?これは安全ですか?

2
Alex

この方法は安全かもしれませんが、市販のキャプチャシステムを使用することには、キャプチャ画像/オーディオ/メディアのセキュリティの観点からも、キャッシングのようなパフォーマンス上の観点からも、多くの利点があると思います。 。たとえば、JavaScriptベースのキャプチャウィジェットを使用する場合、基礎となるWordPressが生成したページは、実際には多数のキャッシュプラグインによって静的ページとして完全にキャッシュされる可能性があります。毎回PHPにキャプチャを生成している場合、これは不可能です。

この方法で行った場合、やるべきことの1つは、フォームに隠しナンスを追加して、キャプチャに応答するユーザーエージェントがそれを生成したものであることを確認することです。 WordPressのwp_nonce関数は、これを簡単にするのに役立ちます。そうでなければ、あなたがキャプチャの過渡期を注意深く洗い流さないなら、誰かがそのページをキャプチャでキャッシュして、そして別のユーザエージェントに応答を送ってもらうことは可能です。

1
mitcho