什么是SQL注入?怎么解决SQL注入?

本文介绍了SQL注入攻击的概念及其防御措施,包括替换单引号、删除连接符、限制账户权限等方法,确保应用程序的安全。

        SQL注入就是一些攻击者把SQL命令插入到web表单的输入或者页面的url中,欺骗服务器执行恶意的SQL语句。在某些表单中,用户输入的内容直接用来构造或者影响动态SQL命令,或者作为存储过程的输入参数。这类表单特别容易收到SQL注入式的攻击。

        SQL注入的防范不是很困难的事,而且防范的方法有很多:

  • 替换单引号,就是将所有单独出现的单引号修改成为两个单引号,防止攻击者修改SQL
  • 删除用户输入内容中的所有连子符,防止攻击者顺利获得访问权限。
  • 对于用来执行查询的账户,限定它的权限,不同的账户执行不同的SQL命令,比如执行SELECT的账户禁止执行DELETE或者DROP操作。
  • 用存储过程来执行所有的查询。SQL参数的传递方式将防止攻击者利用单引号和连接自负实施攻击。此外,它还使得数据库权限可以被限制到只允许特定的存储过程执行,所有的用户输入必须遵从被调用的存储过程的安全上下文,这样就避免了SQL攻击。
  • 检查用户输入的合法性。必须要在客户端和服务器端都检查,因为如果只在客户端检查,攻击者可以获得网页的源代码,并且修改验证的合法性或者直接删除验证,然后讲非法内容提交给服务器,所以必须要在服务器端也要进行检验。
  • 将用户登陆名称、密码等数据进行加密保存。加密用户输入的数据,然后在将它与数据库中的数据进行比较,这样就相当与对用户输入的数据进行了“消毒”处理。
  • 检查提取数据的查询所返回的记录数量。

转载于:https://my.oschina.net/u/2544978/blog/686491

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值