时间:2021-05-26
浅谈Php安全和防Sql注入,防止Xss攻击,防盗链,防CSRF
前言:
首先,笔者不是web安全的专家,所以这不是web安全方面专家级文章,而是学习笔记、细心总结文章,里面有些是我们phper不易发现或者说不重视的东西。所以笔者写下来方便以后查阅。在大公司肯定有专门的web安全测试员,安全方面不是phper考虑的范围。但是作为一个phper对于安全知识是:“知道有这么一回事,编程时自然有所注意”。
目录:
1、php一些安全配置
(1)关闭php提示错误功能
(2)关闭一些“坏功能”
(3)严格配置文件权限。
2、严格的数据验证,你的用户不全是“好”人
2.1为了确保程序的安全性,健壮性,数据验证应该包括内容。
2.2程序员容易漏掉point或者说需要注意的事项
3、防注入
3.1简单判断是否有注入漏洞以及原理
3.2常见的mysql注入语句
(1)不用用户名和密码
(2)在不输入密码的情况下,利用某用户
(3)猜解某用户密码
(4)插入数据时提权
(5)更新提权和插入提权同理
(6)恶意更新和删除
(7)union、join等
(8)通配符号%、_
(9)还有很多猜测表信息的注入sql
33防注入的一些方法
2.3.1 php可用于防注入的一些函数和注意事项。
2.3.2防注入字符优先级。
2.3.3防注入代码
(1)参数是数字直接用intval()函数
(2)对于非文本参数的过滤
(3)文本数据防注入代码。
(4)当然还有其他与addslashes、mysql_escape_string结合的代码。
4、防止xss攻击
4.1Xss攻击过程
4.2常见xss攻击地方
4.3防XSS方法
5、CSRF
5.1简单说明CSRF原理
5.2防范方法
6、防盗链
7、防拒CC攻击
1、php一些安全配置
(1)关闭php提示错误功能
在php.ini 中把display_errors改成
复制代码 代码如下:display_errors = OFF
或在php文件前加入
复制代码 代码如下:error_reporting(0)
1)使用error_reporting(0);失败的例子:
A文件代码:
复制代码 代码如下:<?
error_reporting(0);
echo 555
echo 444;
?>
错误:
复制代码 代码如下:Parse error: parse error, expecting `','' or `';'' in E:\webphp\2.php on line 4
2)使用error_reporting(0);成功的例子:
a文件代码:
复制代码 代码如下:
<?php
error_reporting(0);
include("b.php");
?>
b文件代码:
复制代码 代码如下:
<?php
echo 555
echo 444;
?>
这是很多phper说用error_reporting(0)不起作用。第一个例子A.php里面有致命错误,导致不能执行,不能执行服务器则不知有这个功能,所以一样报错。
第二个例子中a.php成功执行,那么服务器知道有抑制错误功能,所以就算b.php有错误也抑制了。
ps:抑制不了mysql错误。
(2)关闭一些“坏功能”
1)关闭magic quotes功能
在php.ini 把magic_quotes_gpc = OFF
避免和addslashes等重复转义
2)关闭register_globals = Off
在php.ini 把register_globals = OFF
在register_globals = ON的情况下
地址栏目:https:///view/662394.htm
代码:
复制代码 代码如下:
session_start();
$ll_nowtime = $timestamp ;
if (session_is_registered('ll_lasttime')){
$ll_lasttime = $_SESSION['ll_lasttime'];
$ll_times = $_SESSION['ll_times'] + 1;
$_SESSION['ll_times'] = $ll_times;
}else{
$ll_lasttime = $ll_nowtime;
$ll_times = 1;
$_SESSION['ll_times'] = $ll_times;
$_SESSION['ll_lasttime'] = $ll_lasttime;
}
if (($ll_nowtime - $ll_lasttime)<3){
if ($ll_times>=5){
header(sprintf("Location: %s",'http://127.0.0.1'));
exit;
}
}else{
$ll_times = 0;
$_SESSION['ll_lasttime'] = $ll_nowtime;
$_SESSION['ll_times'] = $ll_times;
}
声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。
本文实例讲述了Yii框架防止sql注入,xss攻击与csrf攻击的方法。分享给大家供大家参考,具体如下:PHP中常用到的方法有:?123456789101112
CodeIgniter框架自身提供了一些安全设置如针对XSS和CSRF攻击的防范,针对SQL注入攻击的防范等。就配置文件而言:在application/conf
例如:SQL注入攻击XSS攻击复制代码代码如下:任意执行代码文件包含以及CSRF.}关于SQL攻击有很多文章还有各种防注入脚本,但是都不能解决SQL注入的根本问
XSS又称CSS,全称CrossSiteScript(跨站脚本攻击),XSS攻击类似于SQL注入攻击,是Web程序中常见的漏洞,XSS属于被动式且用于客户端的攻
PHP开发语言是网站开发设计中常见的安全威胁包括:SQL注入、操纵GET和POST变量、缓冲区溢出攻击、跨站点脚本攻击、浏览器内的数据操纵和远程表单提交。那么在