防止SQL注入最常见的方法就是所有sql全部使用占位符,例如: select * from user where user_id='?' and password='?' ,而不用使用sql拼接,这样即可已完全杜绝sql注入类问题
例如 页面用户输入用户名=abc, 密码=123
后端数据库判断会拼接出SQL: select * from user where user_id='abc' and password='123'
如果不加任何保护,用户可以输入用户名=' or ''=', 密码=' or ''='
这样判断用户是否存在的sql就是: select * from user where user_id='' or ''='' and password='' or ''=''
这样SQL 总会返回值,从而用户认证通过.
预防SQL注入现在有很多防注入的java, C#包, 原理就对用户输入的内容做一定限制, 禁止像上面一样输入一些非法的字符串
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。