什么是sql注入
SQL Injection:就是通过把SQL命令插入到Web表单递交或输入域名或页面请求的查询字符串,最终达到欺骗服务器执行恶意的SQL命令。
在网站中,我们经常使用带参数的输入,例如www.***.com?id = 1
在系统的后台中会得到这样的sql语句
select attributre from tableName WHERE id=“1”
下面是sql注入的例子,如果我们给一个url,是的拼成下面的sql
strSQL = "SELECT * FROM users WHERE (name = '1' OR '1'='1') and (pw = '1' OR '1'='1');"这个语句等价为
strSQL = "SELECT * FROM users;"我们发现,即使使用用户名和密码,也能够轻松查询数据库的信息
在MySQL中,最后连续的两个减号表示忽略此SQL减号后面的语句
SELECT uid,username FROM user WHERE username='plhwin' AND 1=1-- hack' AND password='0b4e7a0e5fe84ad35fb5f95b9ceeac79'等价于
SELECT uid,username FROM user WHERE username='plhwin'这样,我们只需要用户名,而不需要密码就能够实现登录
sql 注入的方式还有很多,再次不再赘述
如何防止
sql语句预编译
对前台传入的数据使用正则表达式进行格式校验等等
本人是一个sql初学者,因为对web安全好奇,所以找了点资料,写了几句
转载请注明原文地址: https://ju.6miu.com/read-672312.html