我想保护用户输入,如果是文本输入,我们可以简单地使用filter_input
and mysql_real_escape_string
。
我的问题是:当变量来自选择框时,我是否必须使用它们?某些狡猾的用户是否可以从浏览器更改 POST 值?
我的选择框是从数据库中动态填充的。我是否仍然需要将收到的数据(提交后)与数据库进行比较,并mysql_real_escape_string
用于安全?
当然,您需要始终确认从客户端获得的所有数据。
是的,有人可以更改任何表单元素的输入。像 firefox 中的 FireBug 这样简单的东西将允许我更改我的客户端网页副本上的任何源代码,并使用我更改的数据提交表单。
你不能相信来自用户的任何东西。假设用户发送给您的所有内容都是邪恶的。您需要转义所有内容,甚至更好地使用准备好的语句/参数化查询。
如果您想要一个安全的站点,您需要验证每个输入。您需要检查选择框字段是否与您的数据库值匹配以确保安全。