Security AppScan Standard常见漏洞

标准

已启用目录

需要关闭目录浏览索引

Apache, 进入apache的配置文件 httpd.conf 修改

DocumentRoot "E:/www"
<Directory "E:/www">
    ...
    #Options Indexes FollowSymLinks Includes ExecCGI
    Options FollowSymLinks Includes ExecCGI #去掉Indexes
  ...
</Directory>

Nginx, 编辑nginx配置文件 nginx.conf,修改

autoindex off;  #开启nginx目录浏览功能,on为开启,off为关闭

以上都需要重载配置文件,才生效

加密会话(SSL)Cookie 中缺少 Secure 属性(PHP)

使用https访问时, 需要给cookie加上Secure和HttpOnly属性, 但需要注意:

设置HttpOnly=true的cookie不能被js获取到,无法用document.cookie打出cookie的内容。

1. 设置secure

可以看到,只要在setcookie第六个参数设置为true,就可以了

2. 设置httponly

在5.1和之前的版本在header设置

<?php
header("Set-Cookie: hidden=value; httpOnly");

在5.2和更高的版本
Cookie 参数可以在 php.ini文件中定义
如果需要设置有几个选择
1. 修改php全局配置

#1) 直接修改php.ini文件
session.cookie_httponly=true

#2) 此配置可以在php代码中使用`ini_set`函数设置
ini_set("session.cookie_httponly", 1);

#3),在调用 session_start()之前调用 session_set_cookie_params()函数设置
<?php
private function startSession($time = 3600, $ses = 'MYSES') {
    session_set_cookie_params($time);
    session_name($ses);
    session_start();
    if (isset($_COOKIE[$ses]))
      #第五个参数 设置为true
      setcookie($ses, $_COOKIE[$ses], time() + $time, "/", true);
}
?>

session_set_cookie_params()函数session_start() 函数
2. 在设置cookie时直接指定httponly
前面介绍在setcookie函数第7个参数httponly设置为true即可.

注意事项

setcookie的httponly参数 在5.2.0版本开始才有

参考:https://www.jianshu.com/p/87a72c26db2a

不安全的HTTP方法

只允许post,get的http方法

Apache在httpd.conf添加如下配置:

<Location "/">
   AllowMethods GET POST
</Location>

参考:https://httpd.apache.org/docs/2.4/mod/mod_allowmethods.html

Nginx在nginx.conf中进行如下设置

if ($request_method !~ ^(GET|HEAD|POST)$ ) {
return 403;
}

隐藏server信息和版本信息

nginx配置可以参考这篇文章

Apache配置隐藏版本号, 在httpd.conf添加如下配置:

# 找到ServerTokens和ServerSignature并修改为:

ServerTokens  Prod
ServerSignature  off

# 如果没有找到ServerTokens和ServerSignature可以在最后一行添加

php隐藏版本号,在php.ini中配置:

expose_php=Off

使用伪造的 URL 设置 Referer 头

将可能干扰 CSRF 攻击的 HTTP 头除去,并使用伪造的 URL 设置 Referer 头进行访问,所以需要验证 Referer 头

这种方式只能起到简单发防护, Referer 头是可以伪造的,更推荐使用csrf-token表单方式进行防护

if (isset($_SERVER['HTTP_REFERER']) && strpos($_SERVER['HTTP_REFERER'], $_SERVER['SERVER_NAME']) === false) {
exit('不允许的请求');
}

关闭apache下icons目录列表

使用apache服务器,当我访问http://localhost/icons/时会自动显示这个目录下的所以文件列表,出于安全考虑需要关闭目录列表

目录apache/conf/extra/下的文件httpd-autoindex.conf修改

Alias /icons/ "/xampp/apache/icons/"
<Directory "/xampp/apache/icons">
    #Options Indexes MultiViews
    Options MultiViews #去掉Indexes 
    AllowOverride None
    Require all granted
</Directory>

发表评论

电子邮件地址不会被公开。 必填项已用*标注

3 + 2 =