mysql特殊字符过滤
1. 避免mysql注入应该避免有哪些特殊字符
特殊字符有:
SQL中通配符的使用
SQL注入式攻击,就是攻击者把SQL命令插入到Web表单的输入域内或页面请求的查询字符串,欺骗服容务器执行恶意的SQL命令。在某些表单中,用户输入的内容直接用来构造(或者影响)动态SQL命令,或作为存储过程的输入参数,这类表单特别容易受到SQL注入式攻击。
2. mysql 字符字段怎样屏蔽'
这样的东西是转换过了的特殊字符,从数据库取出的时候要还原才能用。
3. mysql如何过滤特殊字符用PHP语言。高分求助,给补分
function deletehtml($str) {
$str = trim($str);
$str = preg_replace("</P>","1234a3211",$str);
$str = preg_replace("</p>","1234a3211",$str);
$str = preg_replace("<br/>","1234a3211",$str);
$str = preg_replace("/<(.[^>]*)>/","",$str);
$str = preg_replace("/([\r\n])[\s]+/","",$str);
$str = preg_replace("/-->/","",$str);
$str = preg_replace("/<!--.*/","",$str);
$str = preg_replace("/&(quot|#34);/","",$str);
$str = preg_replace("/&(amp|#38);/", "/&/",$str);
$str = preg_replace("/&(lt|#60);/", "/</",$str);
$str = preg_replace("/&(gt|#62);/", ">",$str);
$str = preg_replace("/&(nbsp|#160);/", "",$str);
$str = preg_replace("/&(iexcl|#161);/", "/\xa1/",$str);
$str = preg_replace("/&(cent|#162);/", "/\xa2/",$str);
$str = preg_replace("/&(pound|#163);/", "/\xa3/",$str);
$str = preg_replace("/&(|#169);/", "/\xa9/",$str);
$str = preg_replace("/(\d+);/", "",$str);
$str = preg_replace("/</", "",$str);
$str = preg_replace("/>/", "",$str);
$str = preg_replace("/\r\n/", "",$str);
$str = preg_replace("/1234a3211/", "/<br/>/",$str);
return $str;
}
4. mysql模糊查询like中包含特殊字符在php中要如何处理
前面加个\
转义字符 比如\&就是&
5. mysql怎样删除名字含有特殊字符的数据库
||||使用反
引号
``
就是英文输入法下,1左边的那个键。
mysql>
CREATE
DATABASE
`内!@#$%^&*()_`;Query
OK,
1
row
affected
(0.00
sec)mysql>
SHOW
DATABASES;+--------------------+|
Database
|+--------------------+|
information_schema
||容
!@#$%^&*()_
||
mysql
||
performance_schema
||
test
||
users
|+--------------------+10
rows
in
set
(0.00
sec)
6. Mysql 插入特殊字符的时候如何处理
加上反斜杠,就抄是对袭 ' 或者 " 的,可以用 \' 和 \'' 替换 \"\'12><>》;
一般如果是在php程序上进行插入数据库的话,可以先做个处理
$str=' "'12><>》; ';
if(!get_magic_quotes_gpc()){
$str=addslashes($str);
//addslashes这个函数会对字符串进行处理,即对 ' 或者 " 的,用 \' 和 \'' 替换
}
7. 防止mysql注入脚本应避免哪些特殊字符
防止SQL注入,我们需要注意以下几个要点:
1.永远不回要信任用户的输入答。对用户的输入进行校验,可以通过正则表达式,或限制长度;对单引号和 双"-"进行转换等。
2.永远不要使用动态拼装sql,可以使用参数化的sql或者直接使用存储过程进行数据查询存取。
3.永远不要使用管理员权限的数据库连接,为每个应用使用单独的权限有限的数据库连接。
4.不要把机密信息直接存放,加密或者hash掉密码和敏感的信息。
5.应用的异常信息应该给出尽可能少的提示,最好使用自定义的错误信息对原始错误信息进行包装
6.sql注入的检测方法一般采取辅助软件或网站平台来检测,软件一般采用sql注入检测工具jsky,网站平台就有亿思网站安全平台检测工具。MDCSOFT SCAN等。采用MDCSOFT-IPS可以有效的防御SQL注入,XSS攻击等。
8. MYSQl 特殊字符
你直接用MySQL当然不会有问题
所谓漏洞是这样产生的。。。
你写SQL代码这么版写(以ASP为例,PHP同理,但是权更难利用)
SQL="select * form user where username='" & request("username") & "' and password='" & request("password") & "'"
那么这样我如果在页面中用户名和密码填入'or''='
得到的结果是什么呢?SQL语句变成
select * from user where username='' or ''='' and password='' or ''=''
这样无论数据库中用户名密码是什么,此句永远返回数据库中的第一个用户,此时,你就非法登陆到网站上了,这就是流传的SQL Injection,SQL注入,主要写的特殊字符是指' " ;这种字符,他们会打乱SQL语句本身的逻辑,使服务器错误的执行
9. mysql 全文索引 查询带特殊字符的记录 如" ' . ,怎么办
带上转义符,可以写一个专门转义这个变量的方法
10. MySQL模糊查询特殊字符如何查询
使用复 escape 关键字定义转义符。制
当转义符置于通配符之前时,该通配符就解释为普通字符。例如,要搜索在任意位置包含字符串 % 的字符串,可以这么用,第二个%被重新定义为查找的关键字,而不再是通配符:
select*fromuserwherenamelike"%/%%"escape"/";