1、php.ini 修改 open_basedir='d:\wwwroot' //配置只能访问指定的网站目录

2、php.ini 修改 disable_funcitons=system,passthru,exec,shellexec,popen,phpinfo //禁止执行一些函数

3、php.ini 修改display_errors =On 为display_errors =Off  //禁止显示一些错误

4、跨站脚本攻击(XSS)
防御方法:写函数或者用htmlentities来进行对html或者javascript标签进行过滤
5、sql注入漏洞

防御方法:写函数或者addslashes()来过滤SQL关键字即可

6、跨站请求伪造攻击(CSRF-防盗链)
如要删除一个条记录,没有判断来源信息,任何人都能删除

防御方法:在请求页加上
session_statrt();
$token=md5(uniqid(rand(),TRUE));
$_SESSION['token']=$token;
在表单中加入
<input type="hidden" name="token" value="<?=$token?>"/>

在接收页中验证如:

if(isset($_SESSION['token']) && $_POST['token']==$_SESSION['token'])

{

  验证成功则执行语句

}

7、表单是否重复提交

解决方法:

在提交页处理如下:

session_statrt();

$_SESSION['conn']=time();
$_SESSION['connid']=time();

<input type="hidden" name="connid" value="<?=$_SESSION['connid']?>"/>

接收页如下

if($_SESSION['conn'] != $_POST['connid'])

{

  echo '重复提交';

}else

{

  echo '验证通过处理内容';

}

8、文件上传漏洞

在上传的时候过滤图片类型,文件后缀,图片大小即可

随机推荐

  1. Learning Note: SQL Server VS Oracle–Database architecture

     http://www.sqlpanda.com/2013/07/learning-note-sql-server-vs.html This is my learning note base on t ...

  2. subline text 常用插件

    C语言 Alignment   c Improved   cool format doc Blocker   cTags   AllAutoComplete       wakatime 精确统计你再 ...

  3. java 从网络Url中下载文件

    转自:http://blog.csdn.net/xb12369/article/details/40543649 /** * 从网络Url中下载文件 * @param urlStr * @param ...

  4. UINavigationController 详解

    // 导航控制器 // 1. 比较常用的视图控制器管理类 // 2. 以栈的形式管理视图控制器, 先进后出 // 3. 创建navigation后, 视图控制器上会多出一个导航栏 // 4. 导航栏高 ...

  5. LINUX下使用NC反弹CMDSHELL提权

    很多时候linux拿到shell了,然后在菜刀或Shell里执行简单命令不允许!说明权限很死或者被管理禁止了!这里我已NC将SHELL反弹回本地提权!先看下linux内核 2.6.18-194.11. ...

  6. shader 变体variants

    https://blogs.unity3d.com/cn/2018/05/14/stripping-scriptable-shader-variants/ variants涉及的是build时间和da ...

  7. DevExpress 中 用 LookUpEdit 控件 代替 ComboBoxEdit 控件来绑定 DataTable

    绑定数据及定义列信息 LookUpEdit lue = lookUpEdit1; DataTable dt = new DataTable(); dt.Columns.Add(new DataColu ...

  8. (转)Window 上安装Node.js

    window上安装nodejs非常的简单,next,next就行了,环境变量都是自动配置,不明白为毛java不这样 Window 上安装Node.js http://www.runoob.com/no ...

  9. 解决:mysql5.7 timestamp默认值0000-00-00 00:00:00 报错

    解决:mysql5.7 timestamp默认值0000-00-00 00:00:00 报错 学习了:https://www.cnblogs.com/cnhkzyy/p/9119339.html se ...

  10. /dev/null 的含义和用途

    /dev/null 代表空设备文件,它等价于一个仅仅写文件,全部写入它的内容都会永远丢失.而尝试从它那儿读取内容则什么也读不到. 0:表示键盘输入(stdin) 1:表示标准输出(stdout),系统 ...