mysql安全小结

sql的注入是一个很困扰人的问题,一些恶意攻击者可以利用sql注入来获取甚至是修改数据库中的信息,尤其是一些比较敏感的密码一类的数据。

sql注入主要利用mysql 的注释将后续应正常执行的语句注释掉以达到恶意攻击者的目的

还可以通过使用‘的方式来打断sql语句的执行

还可以通过通过输入or 1=1这样的语句来改变原有的sql判断语句来进行攻击

当然,有攻击必然会有防御

PHP中可以使用PDO、预编译来防止sql注入的攻击必要时我们还可以借助存储过程当然存储过程在web开发中很少用到。

也可以使用正则表达式和PHP的一些内置函数来过滤掉一些非法字符

主要有一下几个方面来进行操作:

1.整理数据使之变得有效。

2.拒绝一致的非法数据。

3.只接受合法数据。

我们可以使用正则表达式来过滤这些字符:

“’”、“;”、“=”、“(”、“)”、“/*”、“*/”、“%”、“+”、“”、“>”、“<”、“--”、“[”、“]”

还可以结合PHP通过做判断来防止sql的注入:

我们可以将参数划分为数字或字符类型和其他类型两种来做不同正则判断,来防止sql的注入。

同样也可以根据自己的需求来指定属于自己的正则表达式来防止sql注入。

时间: 2024-07-28 18:34:52

mysql安全小结的相关文章

mysql字符集小结

author:skate time:2013/04/09 mysql字符集小结 今天同事阿杰兄发现内部一台mysql测试服务器乱码,以前也记录过关于字符集的,今天再补充下 修改mysql的字符集和默认存储引擎 http://blog.csdn.net/wyzxg/article/details/7581415 查看库现有的字符集: mysql> show variables like '%char%'; +--------------------------+------------------

[Z]MySQL使用小结(Linux &amp; Win)

原文:http://blog.sina.com.cn/s/blog_463648970100g0dk.html 这是从开始使用MySQL,到现在所积累的一些杂乱无章的笔记,因为不是一口气写下来,而是以追加的形式构成,大多地方还是从各种地方粘过来(很抱歉不能列出出处,地方太多,当时没记),难免有重复和累赘,所以结构逻辑不太分明,但又不想花时间改了,直接从电脑搬了出来,大家可以拿起砖头...不过有的地方还是挺关键的,所以分享出来供大家学习参考,更详细的资料可去:(MySQL doc:http://d

mysql搜索引擎 小结

mysql搜索引擎 小结 mysql5.5以后,mysql默认使用InnoDB存储引擎. 若要修改默认引擎,可以修改配置文件中的default-storage-engine.可以通过show variables like 'default_storage_engine';查看当前数据库的默认引擎.命令:show engines和show variables like 'have%'可以列出当前数据库支持的引擎.其中value显示为disabled的记录表示数据库支持此引擎,而在数据库启东时被禁用

Mysql查询优化小结

转自http://www.cnblogs.com/112ba/p/6220650.html 数据类型 简单原则:更小更好,简单就好,避免NULL1)整型如int(10)括号中的值与存储大小无关2)实数decimal比float与double占用更大存储空间且CPU不能直接对decimal进行计算3)字符串列最大长度<=255varchar使用一字节保存长度,否则使用2字节.char(10)括号中是字符数,而不是字节数(字节数与列字符集相关).4)使用MYSQL的内建类型保存日期与时间,如date

mysql安装小结

晚上没事干,总结了下mysql的安装.基于mysql5.5,二进制安装camke.

mysql问题小结

1.数据表存在,但查询时提示不存在 原因:默认情况下,mysql在windows对表名大小不敏感(lower_case_table_names=1),在linux上大小敏感(lower_case_table_names=0). 解决办法:对配置文件/etc/my.cnf添加配置项 [mysqld] lower_case_table_names=1 2.navicat远程连接mysql数据库出现1045错误 原因:mysql服务没有授权 解决办法:给远程登录用户添加所有机器都能访问的权限 0.us

Linux下mysql基本操作小结

shell> mysql -uroot -p       //以root用户连接mysql,默认密码为空 注意:mysql的大部分命令都需以";"(分号)结束:对大小写不敏感! mysql> show databases;    //显示数据库列表mysql> use 数据库名          //选中指定的数据库mysql> show tables;           //显示选中数据库中的数据表列表mysql> select * from 表名; 

Mysql优化小结

对于一个网站来说,在运行很长一段时间后,数据库瓶颈问题会越来越暴露出来.作为运维人员,对数据库做必要的优化十分重要!下面总结以往查阅到的以及自己工作中的一些优化操作经验,并根据OSI七层模型从下往上进行优化mysql数据库记录. 一:物理层面1.cpu:2-16个 2*4双四核,L1L2越大越好2.内存:越大越好3.磁盘:SAS或者固态 300G*12磁盘越多IO越高raid 0>10>5>14.网卡:千兆5.slave的配置最好大于等于master 二.系统配置如下,配置系统内核参数/

MYSQL错误小结

一.ERROR 2002 (HY000): Can't connect to local MySQL server through socket'/tmp/mysql.sock' (111) 1.[[email protected] ~]# find /-name mysql.sock /var/lib/mysql/mysql.sock 创建符号连接: ln -s/var/lib/mysql/mysql.sock /tmp/mysql.sock 2.vi /etc/my.conf 检查下行内容是