AppScan扫描安全问题修复

1、隐藏Nginx版本号

修改nginx.conf配置文件

http {    
	server_tokens off;   #默认是注释掉的
 }

2、缺少“Content-Security-Policy”头

修改nginx.conf配置文件

add_header Content-Security-Policy: default-src 'self';

解答: 该响应头主要用于规定页面可以加载那些资源(css/js/img 等)。看一个简单的配置
更多 Content-Security-Policy 的指令及规则及介绍可参考一下链接地址:
https://imququ.com/post/content-security-policy-reference.html

3、缺少“X-Content-Type-Options”头

修改nginx.conf配置文件

add_header X-Content-Type-Options nosniff;

解答:该响应头用于是否允许浏览器加载 frame、 iframe、 object 等属性。可以使用该功能来避免 点击劫持
该指令用三个可用的配置

X-Frame-Options: DENY
X-Frame-Options: SAMEORIGIN
X-Frame-Options: ALLOW-FROM https://example.com/

当设置为 DENY 时,站点禁止任何页面被嵌入。
当设置为 SAMEORIGIN 时,只允许加载同源的 fram/iframe/object。
当设置为 ALLOW-FROM 时,只允许加载指定的源。

4、缺少“X-XSS-Protection”头

修复nginx.conf配置文件

add_header X-XSS-Protection "1; mode=block";

解答:该响应头是用于防范及过滤 XSS 的。可用的几个指令如下:

X-XSS-Protection: 0
X-XSS-Protection: 1
X-XSS-Protection: 1; mode=block
X-XSS-Protection: 1; report=<reporting-uri>

说明:
0,禁用 XSS 过滤
1,开启 XSS 过滤
1; mode=block,开启 XSS 过滤,并且若检查到 XSS 攻击,停止渲染页面。
X-XSS-Protection: 1; report=,开启 XSS 过滤,并且若检查到 XSS 攻击,将使用指导的 url 来发送报告。

5、已解密的登录请求

前端VUE需要进行对密码进行RSA加密
Vue需要安装依赖
npm install jsencrypt --save
在使用到的地方添加如下代码:

import JsEncrypt from 'jsencrypt' 
Vue.prototype.$jsEncrypt = JsEncrypt

将加密解密方法封装到通用的js内

let publicKey = '这里是封装的公钥'
let privateKey = '这里是封装的私钥'
//加密方法
  RSAencrypt(pas){
    //实例化jsEncrypt对象
    let jse = new JSEncrypt();
    //设置公钥
    jse.setPublicKey(publicKey);
    // console.log('加密:'+jse.encrypt(pas))
    return jse.encrypt(pas);
  },
  
//解密方法
  RSAdecrypt(pas){
    let jse = new JSEncrypt();
    // 私钥
    jse.setPrivateKey(privateKey)
    // console.log('解密:'+jse.decrypt(pas))
    return jse.decrypt(pas);
  },

后端解密方法请查阅一下链接:
https://blog.csdn.net/li521wang/article/details/86618634

6、会话标识未更新

风险描述:可能会窃取或操纵客户会话和cookie,它们可能用于模仿合法用户,从而使黑客能够以该用户身份查看或变更用户记录以及执行事务。
解决办法:增加如下工具类:

/**
 * 重置sessionid,原session中的数据自动转存到新session中  * @param request
 */
public static void reGenerateSessionId(HttpServletRequest request) {
    HttpSession session = request.getSession();
    //首先将原session中的数据转移至一临时map中
    Map<String, Object> tempMap = new HashMap();
    Enumeration<String> sessionNames = session.getAttributeNames();
    while (sessionNames.hasMoreElements()) {
        String sessionName = sessionNames.nextElement();
        tempMap.put(sessionName, session.getAttribute(sessionName));
    }
    //注销原session,为的是重置sessionId      session.invalidate();
    // 将临时map中的数据转移至新session
    session = request.getSession();
    for (Map.Entry<String, Object> entry : tempMap.entrySet()) {
        session.setAttribute(entry.getKey(), entry.getValue());
    }
}

在用户登录成功之后调用此方法。

7、SRI (Subresource Integrity) 的检查

风险描述:面对国内的形式,各种灰产,比如你的脚本被注入,导致打开网页就弹支付宝花呗红包之类的…
子资源完整性 Subresource Integrity 简称 SRI 是一种安全机制,它用于让浏览器检查所下载的来自第三方的资源(例如 CDN)未被恶意篡改。它使用哈希值检查确保第三方资源的完整性。只要开发者提供了被需下载资源的哈希值,浏览器就可以检查实际下载的文件是否与预期的哈希值匹配。
解决办法:由于前段调用第三方CDN服务器上的JS导致,将服务器上JS 下载到本地
如果项目中一定要使用外网CDN服务器,可以参考以下链接:
https://www.zhihu.com/question/35720092/answer/523563873

  • 1
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
AppScan是一款流行的漏洞扫描工具,用于识别和评估Web应用程序中的安全漏洞。以下是AppScan漏洞扫描的基本使用说明: 1. 安装和配置:下载并安装AppScan,然后按照提供的指南进行基本配置。确保您的系统满足最低要求并具有适当的许可证。 2. 创建项目:在AppScan中创建一个新项目,提供相关信息,如目标URL和认证凭据(如果需要)。您还可以选择其他配置选项,如扫描深度和扫描策略。 3. 配置扫描选项:根据您的需求选择适当的扫描选项。您可以选择执行全面扫描或仅针对特定漏洞类别执行扫描。 4. 启动扫描:点击"开始扫描"按钮启动扫描AppScan将自动访问目标URL,并尝试发现潜在的漏洞。 5. 查看扫描结果:一旦扫描完成,您可以查看扫描结果报告。报告将列出检测到的漏洞及其严重性级别。您可以通过报告中提供的详细信息,了解每个漏洞的具体细节和修复建议。 6. 修复漏洞:基于AppScan扫描结果,您应该尽快修复检测到的漏洞。根据漏洞的严重性级别,您可以优先处理高风险漏洞。 7. 定期扫描:漏洞扫描不是一次性任务,建议定期使用AppScan对Web应用程序进行扫描,以确保持续的安全性。 请注意,这只是AppScan的基本使用说明。根据您的具体需求和环境,您可能需要更多高级配置和操作。建议参考AppScan的官方文档和用户手册,以了解更多详细信息。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值