SQL 注入攻击

根本原因

后台用字符串拼接参数的方式组成 SQL 语句

select * from bookTbl where author = '上野宣' and flag = 1;

对应 URL

http://example.com/search?q=上野宣

如果将请求改成

http://example.com/search?q=上野宣 '--

就会执行

select * from bookTbl where author = '上野宣'--' and flag = 1;

相当于

select * from bookTbl where author = '上野宣'

两种方法

  1. 使用成熟的 ORM 框架提供的API(其本身也是用过滤危险字符的方式)
  2. 如果必须写原生 SQL 语句,SQL 参数用 ? + replacements 的形式传,例如 JDBC 的 PreparedStatement
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容