我使用javascript构建了一个小应用程序。我正在使用javascript进行表单验证,我想知道是否通过使用“无脚本”标签,如果这将保护我免受人们将非干净数据传递到我的mysql数据库?我将拒绝任何关闭它的人访问该应用程序。这是一个安全的方法还是我还必须在js验证之上进行php表单验证?
如果没有,有人可以告诉我什么是确保提交给我的数据库的数据无害且干净的最佳方法。我喜欢使用javascipt尽可能这样做,而不是用PHP分层,但如果我必须,只要我的应用程序是安全的。
我知道我必须做一些PHP清理,比如htmlentities但是想避免用php进行表单验证。
感谢。
答案 0 :(得分:6)
不,您永远不能相信客户端进行验证。您必须始终验证服务器端。客户端验证可以改善用户体验,但它不会带来任何安全性好处。
答案 1 :(得分:2)
作为一般规则,您永远不想依赖客户端代码(在本例中为javascript)来验证数据。客户端可以完全控制您在javascript中放置的任何内容,因此绕过它很容易。始终在服务器上验证您可以完全控制发生的事情。
答案 2 :(得分:1)
不,您始终需要进行服务器端验证。即使打开JS,你也可以改变它(例如,在Chrome中,你可以暂停脚本加载,编辑JS然后运行它),因此它是否开启甚至无关紧要。
这是一个很好的起点:http://net.tutsplus.com/tutorials/html-css-techniques/build-a-neat-html5-powered-contact-form/(底部是验证示例)
答案 3 :(得分:1)
Javascript保护只是“视觉”。任何人都可以绕过它并插入他/她想要的任何数据。
您应始终验证用户提交的数据服务器端。
基本上你可以从mysql_real_escape_string()开始,以防止mysql注入,如果你要显示输入的数据,你可以做一些标签剥离。