【发布时间】:2011-11-02 21:42:48
【问题描述】:
我有一个关于安全的问题。我有一个用 HTML、CSS、PHP、Javascript(jQuery) 编写的网站...
在整个网站中,有多种形式(尤其是单选按钮)。
一旦用户选择并填写了表单,它就会从选定的单选按钮中获取值并将其发送到服务器进行处理。服务器还获取这些值并将它们插入数据库。
我担心的是:
如何防止有人在点击提交按钮之前使用开发人员工具/源代码编辑器(例如 Google Chrome 的调试/开发人员工具模块)并手动更改单选按钮的值?恐怕人们将能够在提交表单之前手动更改单选按钮输入的值。如果他们真的能做到这一点,那将完全违背我正在构建的脚本的目的。
我希望这是有道理的。
谢谢!
约翰
【问题讨论】:
-
例如,假设单选按钮的值为“Green Bay Packers”。如果他们单击该单选按钮并点击提交,它将给出该特定单选按钮“Green Bay Packers”的值。但是,如果他们手动将值更改为“费城老鹰队”……然后他们点击提交怎么办?它将把选定的球队记录为费城老鹰队......我不能有那种可以手动改变价值的漏洞......这些价值必须被固定下来。我对这个脚本的整个基础都不好吗?
-
使用客户端和服务器端验证。 xkcd.com/327
-
XKCD 的 +1(和一个好点:)
-
在您的示例中,接收表单数据的 PHP 脚本必须知道“Green Bay Packers”是允许的,而“Philadelphia Eagles”是不允许的。在这种特殊情况下,您可以定义一个可接受值的列表,如果用户数据不在此白名单中,则拒绝该请求。
-
Cheekysoft,感谢您对下一步的见解...这是一个非常困难的服务器端验证,因为用户本质上是在选择一支球队(绿湾包装工队、费城老鹰队等)。 ) 然后提交该团队。我什至不知道从哪里开始。
标签: php jquery css forms security