PHP MySQL 安全方案
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 对于用户名这样的字段,输入时候,检查不允许有空格,而且必须是字母数字下划线或划线这四种,用正则检查
3 所有ID为数字的变量,必须检查是否为数字,并将变量强制转换成数字
4 有长度限制的一定要加入长度限制
5 apache,php,mysql不要以系统用户运行
6 系统的所有错误信息必须关闭或者屏蔽,用日志记录报错
7 屏蔽非主流浏览器的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 安全方案的更多相关文章
- MySQL HA方案之MySQL半复制+MHA+Keepalived+Atlas+LVS[转]
MySQL HA方案之MySQL半复制+MHA+Keepalived+Atlas+LVS 简介 目前Mysql高可用的方案有好多,比如MMM,heartbeat+drbd,Cluster等,还有per ...
- MySql优化方案
mysql优化方案总结 u Mysql数据库的优化技术 对mysql优化时一个综合性的技术,主要包括 a: 表的设计合理化(符合3NF) b: 添加适当索引(index) [四种: 普通索 ...
- MySQL备份方案-->(利用mysqldump以及binlog二进制日志)
MySQL备份方案-->(利用mysqldump以及binlog二进制日志) 随着数据不 ...
- Mysql主从方案的实现
Mysql主从方案介绍 mysql主从方案主要作用: 读写分离,使数据库能支撑更大的并发.在报表中尤其重要.由于部分报表sql语句非常的慢,导致锁表,影响前台服务.如果前台使用master,报表使用s ...
- MySQL中间件方案盘点_搜狐科技_搜狐网
MySQL中间件方案盘点_搜狐科技_搜狐网
- 实战体验几种MySQL Cluster方案(转)
1.背景 MySQL的cluster方案有很多官方和第三方的选择,选择多就是一种烦恼,因此,我们考虑MySQL数据库满足下三点需求,考察市面上可行的解决方案: 高可用性:主服务器故障后可自动切换到后备 ...
- Docker容器内Mysql大小写敏感方案解决
Docker容器内Mysql大小写敏感方案解决 一.(lower_case_table_names)参数说明 二.Docker 部署 MySql 并修改为大小写不敏感 2.1直接在Docker启动的时 ...
- Mysql备份方案总结性梳理
Mysql备份方案总结性梳理 服务器 mysql 日志 数据库 配置 Mariadb binlog mysql数据库备份有多么重要已不需过多赘述了,废话不多说!以下总结了mysql数据库的几种 ...
- MySQL 性能方案
翻译自 dev.mysql.com/doc/refman/5.6/en/performance-schema.html 一.3个基本库 数据库初始化安装完毕会有三个基本库mysql .informat ...
- mysql分区方案的研究
笔者觉得,分库分表确实好的.但是,动不动搞分库分表,太麻烦了.分库分表虽然是提高数据库性能的常规办法,但是太麻烦了.所以,尝试研究mysql的分区到底如何. 之前写过一篇文章,http://www.c ...
随机推荐
- CoreAnimation confusion: CATransaction vs CATransition vs CAAnimationGroup?
http://stackoverflow.com/questions/14042755/coreanimation-confusion-catransaction-vs-catransition-vs ...
- Unity3D十款最火的的插件推荐
作为当前最主流的3D游戏引擎之中的一个.Unity拥有大量第三方插件和工具帮助开发人员提升工作效率. 我们摘选了十款最受欢迎的工具推荐给大家.类别包括2D开发.UI设计.原型制作.着色.特效等,涉及了 ...
- BZOJ2822:[AHOI2012]树屋阶梯(卡特兰数,高精度)
Description 暑假期间,小龙报名了一个模拟野外生存作战训练班来锻炼体魄,训练的第一个晚上,教官就给他们出了个难题.由于地上露营湿气重,必须选择在高处的树屋露营.小龙分配的树屋建立在一颗高度为 ...
- 备份&添加无线网络配置
netsh wlan export profile key=clear folder=c:\ #备份 (ls c:\*.xml).FullName|%{netsh wlan add profile f ...
- JQuery 学习总结及实例 !! (转载)
出自 new:http://www.jianshu.com/users/1967b163cb61/latest_articles 1.JQuery简介 普通JavaScript的缺点:每种控件的操作方 ...
- 智能门锁超低功耗:SI522(13.56芯片)替代MFRC522\FM17522
SI522(超低功耗13.56M芯片)替代RC522 完全兼容 PIN对PIN,同时也替代FM17522. MF RC522 是应用于13.56MHz 非接触式通信中高集成度读写卡系列芯片中的一员.是 ...
- Mac--查看公钥
打开macbook的终端输入以下命令: $ cd ~/.ssh $ ls $ cat id_rsa.pub
- “SAP.Middleware.Connector.RfcDestinationManager”的类型初始值设定项引发异常
在VS2015中使用SAP Connector 3.0(SapNco)的.net4.0x86版本开发时,程序运行到RfcDestinationManager.TryGetDestination时报错: ...
- shrio的rememberMe不起作用
在移植项目.每次重启服务器需要登录.比较麻烦.于是研究下shrio的功能. rememberMe大概可以满足我的需求.但是跟着网上配置了.不起作用...... 于是乎查看源代码拉.java的好处... ...
- 在windows service中启动类型“Automatic” 和 “Automatic (Delayed start)” 有何不同?
问题: When installing Windows services there are two options for automatically starting a Windows serv ...