防止SQL 注入;如何进行防SQL 注入。
防止SQL 注入:
1、开启配置文件中的magic_quotes_gpc 和
magic_quotes_runtime 设置
2、执行sql 语句时使用addslashes 进行sql 语句转换
3、Sql 语句书写尽量不要省略小引号和单引号
4、过滤掉sql 语句中的一些关键字:update、insert、
delete、select、*
5、提高数据库表和字段的命名技巧,对一些重要的字段
根据程序的特点命名,取不易被猜到的。
6、Php 配置文件中设置register_globals 为off,关闭
全局变量注册
7、控制错误信息,不要再浏览器上输出错误信息,将错
误信息写到日志文件中。
如何进行防SQL 注入?
1、过滤掉一些常见的数据库操作关键字:
select,insert,update,delete,and,*等
或者通过系统函数:addslashes(需要被过滤的内容)来
进行过滤。
2、在PHP 配置文件中
Register_globals=off;设置为关闭状态//作用将注册
全局变量关闭。
比如:接收POST 表单的值使用$_POST['user'],如果将
register_globals=on;直接使用$user 可以接收表单的
值。
3、SQL 语句书写的时候尽量不要省略小引号(tab 键
上面那个)和单引号
4、提高数据库命名技巧,对于一些重要的字段根据
程序的特点命名,取不易被猜到的
5、对于常用的方法加以封装,避免直接暴漏SQL 语
句
6、开启PHP 安全模式
Safe_mode=on;
7、打开magic_quotes_gpc 来防止SQL 注入
Magic_quotes_gpc=off;默认是关闭的,它打开后将
自动把用户提交的sql 语句的查询进行转换,把'转为
\',这对防止sql 注入有重大作用。
因此开启:magic_quotes_gpc=on;
8、控制错误信息
关闭错误提示信息,将错误信息写到系统日志。
9、使用mysqli 或pdo 预处理。
- 如何通过sql语句查看数据库的大小
- ado连接oracle报错
- SQL2012还原数据库操作在本地服务器上操作和用别的电脑远程连接到服务器进行操作的文件路径差异
- oracle timestamp和date
- mysql 用户管理和权限设置和Mysql初始化root密码和允许远程访问
- mysql创建用户并授权
- mysql 笔记
- .Net程序员学用Oracle系列(15):DUAL、ROWID、NULL
- mysqlsla快速入门
- Oracle中通过某个值查询属于哪张表,哪个字段
- python之redis
- redis笔记
- redis服务以及phpredis扩展的安装
- MySQL多线程备份工具mydumper
- Mysql字符串截取函数SUBSTRING的用法说明
- redis简单示例及注意事项
- MySQL Explain详解
- redisson实现分布式锁原理
- spring 使用redis集群配置
- Redis基础命令