防xss攻击,需要对请求参数进行escape吗?

简介: <div class="markdown_views"><h2 id="防xss攻击需要对请求参数进行escape吗"><strong>防xss攻击,需要对请求参数进行escape吗? </strong></h2><p>先看一个测试: <br>请求: <br><a href="http://localhost:8080/testapi/testapi?apiPath=h

防xss攻击,需要对请求参数进行escape吗?

先看一个测试:
请求:
http://localhost:8080/testapi/testapi?apiPath=http%3A%2F%2Fhbjltv.com%2Finfo%2Frequest%3Fusername%3Dhuang%26password%3Dadmin
解码之后就是:
http://localhost:8080/testapi/testapi?apiPath=http://hbjltv.com/info/request?username=huang&password=admin

该接口用于测试协作方接口的应答状态码.
为了防止xss攻击,所以对所有参数都进行html escape:

@RequestMapping("/testapi")
    @ResponseBody
    public String test(String apiPath, String requestMethod) throws IOException {
        apiPath = HtmlUtils.htmlEscape(apiPath);
        URL url = new URL(apiPath);
        URLConnection urlConnection = url.openConnection();
        HttpURLConnection httpUrlConnection = (HttpURLConnection) urlConnection;
        httpUrlConnection.setDoInput(true);
        httpUrlConnection.setUseCaches(false);
        if (!ValueWidget.isNullOrEmpty(requestMethod)) {
            httpUrlConnection.setRequestMethod(requestMethod);
        }
        httpUrlConnection.connect();
        int responseStatusCode = httpUrlConnection.getResponseCode();
        httpUrlConnection.disconnect();
        System.out.println("responseStatusCode:" + responseStatusCode);
        Map<String, Object> map = new HashMap<String, Object>();
        map.put("responseCode", responseStatusCode);

        map.put("apiPath", apiPath);
        return HWJacksonUtils.getJsonP(map);
    }

看看协作方接口收到的参数:
协作方后台日志
我传递的参数名称明明是password,但是现在怎么变成了amp;password ?
因为:

apiPath = HtmlUtils.htmlEscape(apiPath);

所以对参数进行HTML escape时应该不处理&

修改HTML escape 的函数如下:

相关文章
|
5月前
|
存储 JavaScript 前端开发
前端xss攻击——规避innerHtml过滤标签节点及属性
前端xss攻击——规避innerHtml过滤标签节点及属性
323 4
|
5月前
|
缓存 安全 JavaScript
前端安全:Vue应用中防范XSS和CSRF攻击
【4月更文挑战第23天】本文探讨了在Vue应用中防范XSS和CSRF攻击的重要性。XSS攻击通过注入恶意脚本威胁用户数据,而CSRF则利用用户身份发起非授权请求。防范措施包括:对输入内容转义、使用CSP、选择安全的库;采用Anti-CSRF令牌、同源策略和POST请求对抗CSRF;并实施代码审查、更新依赖及教育团队成员。通过这些实践,可提升Vue应用的安全性,抵御潜在攻击。
798 0
|
3月前
|
存储 安全 JavaScript
手摸手带你进行XSS攻击与防御
当谈到网络安全和信息安全时,跨站脚本攻击(XSS)是一个不可忽视的威胁。现在大家使用邮箱进行用户认证比较多,如果黑客利用XSS攻陷了用户的邮箱,拿到了cookie那么就可以冒充你进行收发邮件,那真就太可怕了,通过邮箱验证进行其他各种网站的登录与高危操作。 那么今天,本文将带大家深入了解XSS攻击与对应的防御措施。
|
11天前
|
存储 安全 JavaScript
XSS跨站脚本攻击详解(包括攻击方式和防御方式)
这篇文章详细解释了XSS跨站脚本攻击的概念、原理、特点、类型,并提供了攻击方式和防御方法。
30 1
|
2月前
|
监控 安全 JavaScript
对跨站脚本攻击(XSS)的防御策略?
【8月更文挑战第15天】
135 1
|
3月前
|
SQL 安全 数据库
Python Web开发者必学:SQL注入、XSS、CSRF攻击与防御实战演练!
【7月更文挑战第26天】在 Python Web 开发中, 安全性至关重要。本文聚焦 SQL 注入、XSS 和 CSRF 这三大安全威胁,提供实战防御策略。SQL 注入可通过参数化查询和 ORM 框架来防范;XSS 则需 HTML 转义用户输入与实施 CSP;CSRF 防御依赖 CSRF 令牌和双重提交 Cookie。掌握这些技巧,能有效加固 Web 应用的安全防线。安全是持续的过程,需贯穿开发始终。
71 1
Python Web开发者必学:SQL注入、XSS、CSRF攻击与防御实战演练!
|
5月前
|
安全 JavaScript Go
【Web】什么是 XSS 攻击,如何避免?
【Web】什么是 XSS 攻击,如何避免?
|
2月前
|
存储 安全 JavaScript
XSS攻击(Cross-Site Scripting)
【8月更文挑战第11天】
51 2
|
2月前
|
存储 安全 JavaScript
解释 XSS 攻击及其预防措施
【8月更文挑战第31天】
70 0
|
2月前
|
存储 JavaScript 安全
Web安全之XSS跨站脚本攻击
XSS(跨站脚本攻击)
70 7