嘿伙计们,我最近一直在考虑形式安全问题.我被告知一次又一次检查表格输入是否是一个数字,如果你期望一个数字或逃脱它以防万一(除非你使用适当的mysqli格式),以避免注入.
1.安全检查完成后,我是否应该进行额外的逻辑检查?例如,如果用户正在向他们发送朋友请求,例如,即使用户正在查看他们自己的页面,我的用户界面也不会显示该表单.
您在HTML或JavaScript中执行的任何操作都不足以阻止某人将数据直接发布到您的HTTP服务器.因此,将浏览器发送的任何内容(甚至是cookie!)视为"用户输入"并相应地保护.
因为即使您的表单可能不允许我向自己发送朋友请求,如果我正在运行Fiddler,我可以设置断点,更改POST变量,然后恢复请求,您的服务器也不知道.
事实上,这是一个很好的开眼练习.如果您下载Fiddler,您可以观看浏览器向您的网站发送或接收的所有内容.浏览器发送的任何内容都不应该被隐式信任.
当然。验证的重点是正确处理超出您预期的输入。如果用户给了你你所期望的,你就不必验证。您需要假设您的用户绝对可以向您扔任何东西。如前所述,他们可以使用手动 HTTP 请求完全绕过浏览器。始终以防御性方式编写代码。
| 归档时间: |
|
| 查看次数: |
81 次 |
| 最近记录: |