1 转义与清除转义

// 对 用户提交的数据 ' " \ 进行转义
if ( get_magic_quotes_gpc() )
{
function del_magic_quotes($value)
{
$value = is_array($value) ? array_map('del_magic_quotes', $value) : stripslashes($value); return $value;
} $_POST = del_magic_quotes( $_POST );
$_GET = del_magic_quotes( $_GET );
$_COOKIE = del_magic_quotes( $_COOKIE );
$_REQUEST = del_magic_quotes( $_REQUEST );
} function add_magic_quotes( $array ) {
foreach ( (array) $array as $k => $v ) {
if ( is_array( $v ) ) {
$array[$k] = add_magic_quotes( $v );
} else {
$array[$k] = addslashes( $v );
}
}
return $array;
} $_GET = add_magic_quotes( $_GET );
$_POST = add_magic_quotes( $_POST );
$_COOKIE = add_magic_quotes( $_COOKIE );
$_REQUEST = add_magic_quotes( $_REQUEST );

2 对于用户名这样的字段,输入时候,检查不允许有空格,而且必须是字母数字下划线或划线这四种,用正则检查

所有ID为数字的变量,必须检查是否为数字,并将变量强制转换成数字

4  有长度限制的一定要加入长度限制

5 apache,php,mysql不要以系统用户运行

系统的所有错误信息必须关闭或者屏蔽,用日志记录报错

屏蔽非主流浏览器的user-agent

8 普通单个变量检查安全代码

function check_input($value)
{
// 去除斜杠
if (get_magic_quotes_gpc())
{
$value = stripslashes($value);
}
// 如果不是数字则加引号
if (!is_numeric($value))
{
$value = "'" . mysql_real_escape_string($value) . "'";
}
return $value;
} $con = mysql_connect("localhost", "hello", "321");
if (!$con)
{
die('Could not connect: ' . mysql_error());
} // 进行安全的 SQL
$user = check_input($_POST['user']);
$pwd = check_input($_POST['pwd']);
$sql = "SELECT * FROM users WHERE
user=$user AND password=$pwd"; mysql_query($sql); mysql_close($con);

 

PHP MySQL 安全方案的更多相关文章

  1. MySQL HA方案之MySQL半复制+MHA+Keepalived+Atlas+LVS[转]

    MySQL HA方案之MySQL半复制+MHA+Keepalived+Atlas+LVS 简介 目前Mysql高可用的方案有好多,比如MMM,heartbeat+drbd,Cluster等,还有per ...

  2. MySql优化方案

    mysql优化方案总结 u       Mysql数据库的优化技术 对mysql优化时一个综合性的技术,主要包括 a: 表的设计合理化(符合3NF) b: 添加适当索引(index) [四种: 普通索 ...

  3. MySQL备份方案-->(利用mysqldump以及binlog二进制日志)

                                                         MySQL备份方案-->(利用mysqldump以及binlog二进制日志) 随着数据不 ...

  4. Mysql主从方案的实现

    Mysql主从方案介绍 mysql主从方案主要作用: 读写分离,使数据库能支撑更大的并发.在报表中尤其重要.由于部分报表sql语句非常的慢,导致锁表,影响前台服务.如果前台使用master,报表使用s ...

  5. MySQL中间件方案盘点_搜狐科技_搜狐网

    MySQL中间件方案盘点_搜狐科技_搜狐网

  6. 实战体验几种MySQL Cluster方案(转)

    1.背景 MySQL的cluster方案有很多官方和第三方的选择,选择多就是一种烦恼,因此,我们考虑MySQL数据库满足下三点需求,考察市面上可行的解决方案: 高可用性:主服务器故障后可自动切换到后备 ...

  7. Docker容器内Mysql大小写敏感方案解决

    Docker容器内Mysql大小写敏感方案解决 一.(lower_case_table_names)参数说明 二.Docker 部署 MySql 并修改为大小写不敏感 2.1直接在Docker启动的时 ...

  8. Mysql备份方案总结性梳理

    Mysql备份方案总结性梳理   服务器 mysql 日志 数据库 配置 Mariadb binlog   mysql数据库备份有多么重要已不需过多赘述了,废话不多说!以下总结了mysql数据库的几种 ...

  9. MySQL 性能方案

    翻译自 dev.mysql.com/doc/refman/5.6/en/performance-schema.html 一.3个基本库 数据库初始化安装完毕会有三个基本库mysql .informat ...

  10. mysql分区方案的研究

    笔者觉得,分库分表确实好的.但是,动不动搞分库分表,太麻烦了.分库分表虽然是提高数据库性能的常规办法,但是太麻烦了.所以,尝试研究mysql的分区到底如何. 之前写过一篇文章,http://www.c ...

随机推荐

  1. python 3.6.3 异常

    内置异常 在Python中,所有异常都必须是派生类的实例 BaseException.在try同一个声明中except 说提到一类特殊条款,该条款还处理来自类(从中但也不例外类派生的任何异常类它派生) ...

  2. [19/04/12-星期五] 多线程_任务定时调度(Timer、Timetask和QUARTZ)

    一.Timer和Timetask 通过Timer和Timetask,我们可以实现定时启动某个线程. java.util.Timer 在这种实现方式中,Timer类作用是类似闹钟的功能,也就是定时或者每 ...

  3. 2.spring:集合属性

    1.list  配置java.util.List类型的属性,需要指定<list>标签,在标签里面包含有一些元素,这些标签 可以通过<value>指定简单的常量值,通过<r ...

  4. Linux下安装Qt5.6.1

    我的环境:CentOS 6.7  64位. 1.下载Qt: Qt版本有很多,自己比较菜,希望安装的过程越简单越好,感觉比较新的版本会好安装一些,5.4版本还要更新 /usr/lib64/libstdc ...

  5. centos7修改主机名和ip映射

    1.修改主机名:命令:/etc/hostname文件输入:HOSTNAME=node3想永久修改,应该修改配置文件 /etc/sysconfig/network. 输入:NETWORKING=yes ...

  6. Java构造器(构造方法)与方法区别

    构造器,又称为构造方法.构造器用于构造该类的实例,也就是对象. 格式如下:[修饰符]  类名 (形参列表){//n条语句} 构造方法是一种特殊的方法,与一般的方法区别:  1.构造方法的名字必须与定义 ...

  7. STM32 Cortex-M3 NMI异常

    最近在调试STM32 Cortex-M3 HardFault异常,以外发现程序居然进入了NMI异常.对于这种异常,从来没有出现过,如下图所示. 此时的R0等寄存器的值如下图所示, 堆栈指针是0x200 ...

  8. 【Linux资源管理】一款优秀的linux监控工具——nmon

    (一)nmon工具概述 nmon是以一个用来做linux服务器监控的工具,通过nmon,可以实现对以下参数的监控: --CPU使用率 --内存.交换空间使用率 --网络使用情况 --磁盘I/O,读写速 ...

  9. ARC下IBOutlet用weak还是strong

    原文来自这里. 今天用Xcode5的时候,发现默认的IBoutlet的属性设置为weak——因为Xcode5建立的工程都是ARC的了.但是当时还有点不明白,因为项目的原因,一直没有正式使用过ARC.于 ...

  10. HTML基础之常用标签

    Meta 标签介绍 Meta的属性有两种:name和http-equiv name属性用于描述网页,对应于content <meta name="Generator" con ...