【发布时间】:2014-06-27 16:08:04
【问题描述】:
我目前正在创建一个 PHP 消息传递系统,但似乎想不出阻止垃圾邮件攻击的合适方法。将从此表单发送一条消息(简化为包含要点):
<form action="messages/send" method="POST">
<input type="text" name="message" />
<input type="hidden" name="recipient" value="10" />
<input type="submit" value="Send" />
</form>
上面的隐藏字段存储收件人 ID。此网站上的数据不安全,可供人们查看(例如 facebook;profile.php?id=45345345。)
提交表单后,后端 PHP 会进行以下检查:
- 发件人是否已登录?
- 是否允许发送联系收件人?
- 消息是否包含任何内容? (非空)
我想到的问题是有人可以轻松创建一个简单的脚本,该脚本可以自动增加表单中的“收件人”值,并基本上发送一个站点范围的消息。可以执行哪些其他后端 PHP 检查或其他类型的检查来防止这种情况发生?
【问题讨论】:
-
添加验证码,即在发送表单之前随机生成的小文本。这将避免脚本的非预期运行。
-
将收件人值存储在用户会话中而不是表单上
标签: php spam spam-prevention