手抄报 安全手抄报 手抄报内容 手抄报图片 英语手抄报 清明节手抄报 节约用水手抄报

sql注入解决方案

时间:2024-10-14 00:23:04

1、单引号问题 $ sqlplus '/ AS SYSDBA' 解决办法:String content = content.replaceAll("'", "\""); 把单引号替换成双引号。 恢复办法:String content = content.replaceAll("\"", "'"); 把双引号替换成单引号。

2、使用PreparedStatement防止SQL注入 如果有一条SQL语句: "se盟敢势袂lect * from 表 where 用户名 = '用户名'"Statement的SQL语句是这样写的: "select * from 表 where 用户名 = '"+ 变量值 +"'"PreparedStatement的SQL语句是这样写的: "select * from 表 where 用户名 = ?" 然后对应?赋值这样我们就发现输入 "aa' or '1' = '1"Statement是将这个和SQL语句做字符串连接到一起执行PreparedStatement是将 "aa' or '1' = '1" 作为一个字符串赋值给?,做为"用户名"字段的对应值,显然这样SQL注入无从谈起了.

3、网站建设如何防止SQL注入1、解决SQL注入漏洞的关键是对所有来自用户输入的数据进行严格检查、对数据库配置使用最小权限原则所有的查询语句都使用数据库提供的参数化查询接口,参数化的语句使用参数而不是将用户输入变量嵌入到SQL语句中。避免网站显示SQL错误信息,比如类型错误、字段不匹配等,防止攻击者利用这些错误信息进行一些判断。2、对进入数据库的特殊字符('"\<>&*;等)进行转义处理,或编码转换。严格限制网站用户的数据库的操作权限,给此用户提供仅仅能够满足其工作的权限,从而最大限度的减少注入攻击对数据库的危害。3、数据长度应该严格规定,能在一定程度上防止比较长的SQL注入语句无法正确执行。确认每种数据的类型,比如数字型的数据就必须是数字,数据库中的存储字段必须对应为int型。 网站每个数据层的编码统一,建议全部使用UTF-8编码,上下层编码不一致有可能导致一些过滤模型被绕过

© 手抄报圈