安全实例总结

说明:本文主要是平常工作中遇到的一些安全性问题总结,会持续更新。

  1. 关闭PHP版本信息在http头中的泄漏
    PHP隐藏server
    修改 php.ini 文件 设置 expose_php = Off
    apache 隐藏 server
    修改httpd.conf 设置 ServerSignature Off ServerTokens Prod
    nginx 隐藏 server
    修改nginx.conf 在http里面设置 server_tokens off;
  2. web应用表单密码类型输入启用了自动完成操作
    在type="password"的input框中加入autocomplete="off"属性
  3. X-Frame-Options未配置
    X-Frame-Options 有三个值:
    ①DENY
    表示该页面不允许在 frame 中展示,即便是在相同域名的页面中嵌套也不允许。
    ②SAMEORIGIN
    表示该页面可以在相同域名页面的 frame 中展示。
    ③ALLOW-FROM uri
    表示该页面可以在指定来源的 frame 中展示。
    nginx配置
    添加add_header X-Frame-Options SAMEORIGIN;
    在这里插入图片描述
    Apache配置:
    apache可配置http.conf如下:
 <IfModule headers_module>
    Header always append X-Frame-Options "DENY"
 </IfModule>
  1. 检测到会话cookie中缺少HttpOnly属性
    将php.ini配置修改成session.cookie_httponly = 1,这主要是为了防止攻击者通过程序(JS脚本、Applet等)获取到用户的cookie信息
  2. crossdomain.xml解决跨域问题
    示例:
<?xml version="1.0"?>
<cross-domain-policy>
	<allow-access-from domain="*.luoyang.changyan.cn" />
	<allow-http-request-headers-from domain="*.luoyang.changyan.cn" headers="*"/>
</cross-domain-policy>

6.XSS反射型和存储型
①tp框架尽量用I方法获取传入参数,富文本框除外,因为可能需要过滤,所以需要没有经过任何处理过的参数。
②输出时,可以使用htmlspecialchars,eg:{$test|htmlspecialchars=###,ENT_QUOTES}
③使用过滤函数,或者使用白名单方式,或者360提供的php类
eg:

/**
 1. t函数用于过滤标签,输出没有html的干净的文本
 2. @param string text 文本内容
 3. @return string 处理后内容
 */
function t($text){
    $text = str_replace(array("\""," "), array('',''),$text);
    $text = nl2br($text);
    $text = real_strip_tags($text);
    $text = addslashes($text);
    $text = trim($text);
    $text = htmlspecialchars($text);
    return $text;
}
  1. SQL注入
    ①参数只可能为整型时 将参数转换为整型
    ②参数过滤
    eg:
//防sql注入
function post_check($post) {
    // 判断magic_quotes_gpc是否为打开
    if (!get_magic_quotes_gpc()) {
        $post = addslashes($post); // 进行magic_quotes_gpc没有打开的情况对提交数据的过滤
    }
    $post = str_replace("_", "\_", $post); // 把 '_'过滤掉
    $post = str_replace("%", "\%", $post); // 把' % '过滤掉
    $post = nl2br($post); // 回车转换
    $post= htmlspecialchars($post); // html标记转换
    $post = mysql_real_escape_string($post);
    return $post;
}

③PDO,从根本上解决sql注入问题

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值