2011-05-21 56 views
1

我一直在阅读PHP最近和验证用户输入是一个共同的主题,原因很明显。我没有真正进入黑客行为,或者出于好奇而做任何恶意的事情,我不明白恶意用户如何能够更改POST信息。为了澄清,这里是一个摘录出的书我读的:更改POST数据?

如果用户可以输入他或她的状态 自由形式,那么你自己已经暴露 以获得心满意足像

  • 新Yrok(错别字)
  • LALALA(故意遮挡)

用来解决这个 是使用下拉选项框,以常用的战术 为用户提供状态选择。这 只解决了一半的问题,但: 你阻止人们 意外进入一个不正确的 状态,但它会从有人恶意更改 他们的POST数据在 不存在的选项,通过提供任何保护 。 - “高级PHP编程由乔治·Schlossnagle”

一个人怎么会连去这样做,我明白了为什么要避免这种情况,但似乎在倒退我的逻辑,以防止我做的不是充分认识。

感谢

回答

3

你不能假设processtheform.php只会被发布从yourform.html数据。如果他们在他们自己的系统(或其他任何地方)上创建自己的html表单,他们可以使用它发布到您的processtheform.php代码。

如果processtheform.php说了一个隐藏在表单中的用户名(电子邮件地址),并用它来向该人发送电子邮件,那么黑客可能会更改该信息,并让您的程序向人们发送垃圾邮件。

基本上,您不能依靠yourform.html上的前端脚本来确保数据是干净的并且应该发送。 processtheform.php需要检查并清理数据,即使你的前端代码已经完成了。

只有前端清洁的好处是它保持用户在同一页面上,并允许他在提交前输入正确的数据 - 如果没有在前端完成,用户可能需要重新输入他的所有内容信息。