在使用Javascript/HTML,以提高安全性
是有办法做到这一点在HTML
号正如其他人所指出的那样,你不能做任何事情提高安全性你的HTML或Javascript。
原因是您的浏览器和您的服务器之间的通信对攻击者完全透明。任何开发人员可能都熟悉Firefox,Chrome等中的“开发人员工具”。即使是那些在大多数新型浏览器中都有的工具,也足以创建任意HTML请求(甚至通过HTTPS)。
因此,您的服务器绝不能依赖请求任何部分的有效性。不是URL,不是GET/POST参数,不是cookies等;你总是必须自己验证它,在服务器端。
在SQL注入
SQL注入是最好的确保从不回避有这样的代码:
sql = "select xyz from abc where aaa='" + search_argument + "'" # UNSAFE
result = db.execute_statement(sql)
也就是说,你永远要刚刚加入串在一起的SQL语句。
相反,你想要做的是使用绑定变量,类似这样的伪代码:
request = db.prepare_statement("select xyz from abc where aaa=?")
result = request.execute_statement_with_bind(sql, search_argument)
通过这种方式,用户输入的是永远不会被解析为SQL本身,这就使得SQL注入是不可能的。当然,检查客户端上的参数以改善用户体验(避免服务器往返延迟)仍然是明智的;也可能在服务器端(以避免隐晦的错误消息)。但是这些检查不应该与安全性混淆。