SQL注入就是一些攻击者把SQL命令插入到web表单的输入或者页面的url中,欺骗服务器执行恶意的SQL语句。在某些表单中,用户输入的内容直接用来构造或者影响动态SQL命令,或者作为存储过程的输入参数。这类表单特别容易收到SQL注入式的攻击。
SQL注入的防范不是很困难的事,而且防范的方法有很多:
- 替换单引号,就是将所有单独出现的单引号修改成为两个单引号,防止攻击者修改SQL
- 删除用户输入内容中的所有连子符,防止攻击者顺利获得访问权限。
- 对于用来执行查询的账户,限定它的权限,不同的账户执行不同的SQL命令,比如执行SELECT的账户禁止执行DELETE或者DROP操作。
- 用存储过程来执行所有的查询。SQL参数的传递方式将防止攻击者利用单引号和连接自负实施攻击。此外,它还使得数据库权限可以被限制到只允许特定的存储过程执行,所有的用户输入必须遵从被调用的存储过程的安全上下文,这样就避免了SQL攻击。
- 检查用户输入的合法性。必须要在客户端和服务器端都检查,因为如果只在客户端检查,攻击者可以获得网页的源代码,并且修改验证的合法性或者直接删除验证,然后讲非法内容提交给服务器,所以必须要在服务器端也要进行检验。
- 将用户登陆名称、密码等数据进行加密保存。加密用户输入的数据,然后在将它与数据库中的数据进行比较,这样就相当与对用户输入的数据进行了“消毒”处理。
- 检查提取数据的查询所返回的记录数量。
本文介绍了SQL注入攻击的概念及其防御措施,包括替换单引号、删除连接符、限制账户权限等方法,确保应用程序的安全。

26万+

被折叠的 条评论
为什么被折叠?



