web服务器脚本安全 基础学习 总结【对应php 脚本】

来源:互联网 发布:js 实参 形参 编辑:程序博客网 时间:2024/04/28 23:56

web服务器脚本安全 基础学习 总结【对应php 脚本】

1 命令注入[windows dos, linux shell]

容易受到注入攻击的php函数

system , exec ,passthru, shell_exec, eval,preg_replace, str_replace ,动态函数, call_user_func.

system :exec passthru shell_exec  执行shell

url 编码与解码  比如 使用上述函数 表单提交 传入参数 执行 


2Eval 注入攻击

使用Eval 执行存储在php数据库中的代码  过滤的重要性

另外 :Eval 注入攻击  preg_replace 正则表达式  /e

动态函数调用call_user_func.

 

3 应用可变变量的注入攻击  foreach ($_GET as$key=>$value){$$key=$value;}

最好不要用可变变量  或者把相关用到的自己初始化的变量 写到下面

防范注入攻击

1 避免给使用相关函数

2 自定义函数或者函数库

3 使用转义参数函数 escapeshellarg(); 或者检查, 过滤参数

4不要直接传函数名称 根据参数执行 函数 或者方法 可以自己if 判断

5 使用apach php服务器的 安全模式 配置

safe_mode=on

  设置安全模式路径 safe_mode_exec_dir=/函数命令 路径 

客户端脚本植入攻击

防范  strip_tags() 去除脚本标签

 htmlspecialchars() 从数据库显示出来的 数据 进行转义 防止被植入的js脚本执行

 htmlentities()

 

4 xss漏洞主要是cookie 攻击 使用htmlspecialchars  转义

echo 显示的 都要转义

 

5 Sql数据的转义 过滤 避免 sql注入

1. 1’ or ‘1’=’1 这类漏洞:

addslashes  进行单引号转义 或者配置 自动 php.ini  magic_quotes_gpc=on

mysql_real_escape_string()

盗取密码 或者可以删整个表数据

相应的函数 转义  整数 浮点等  intval() floatbval() doubleval()


6 CSRF跨网站请求伪造攻击

伪造http请求

判断网页的来源

隐藏变量 eg: 生成随机数 session 保存 操作前 判断


7 会话劫持攻击

定期修改session_id

关闭透明化[可以通过url 隐藏hidden去向服务器传递session_id] session_id  只从cookie获取session_id

 //php.ini配置 session.user_trans_sid=0关闭

use_cookies=1 //使用cookie 

session.use_only_cookies=1//只使用cookies 

检查浏览器是否变化  浏览器信息保存到seesion  判断

 

8 Http响应拆分攻击  目前不起作用


9文件上传攻击 【文件不可以被执行 危险】

 

关闭文件上传/php.ini   file_upload=off

限制上传文件大小  /php.ini  post_max_size   upload_max_size

 

检查是否是真的上传文件  is_upload_file()

检查文件大小 内容类型

filesize() getimagesize() readfile()

 隐藏文件的路径

 

改变临时文件夹  php.ini upload_tmp_dir

 

远程文件引入攻击

关闭远程调用

Php.ini allow_url

 通过url传递简单 远程域名

远程文件的目录穿越检查  if(..)

数据库暴库  web服务器配置目录安全性

另外 阿里的一篇文章 web安全漏洞 写的不错 ,可以去看下。

0 0
原创粉丝点击