`

防xss攻击总结

阅读更多

原则

用户输入什么,数据库就存储什么. 
在前端显示时,需要escape.

html标签的title属性也需要escape

看一个title属性未escape得例子: 

 

html代码: 

所以html标签的title属性也需要escape. 
但是,如果使用jQuery的attr方法设置title,则不需要escape:

setPreviewOrgFullName:function (orgFullName) {
            if(orgFullName){
                //去掉空格
                orgFullName=Cjt.util.Format.trim(orgFullName);
            }
            var orgCutOffName = Util.omitTooLongString(orgFullName, this.config.truncationLength);
            $('#preview_orgFullName').html(Cjt.escape(orgCutOffName)).attr('title', orgFullName);
        }

 

注意:如果使用jQuery设置title,则不需要escape, 
否则需要对title进行escape 
如果能够保证title没有双引号,则不管哪种情况,都不需要escape.

jstl escape

title="<c:out value="${bbs.answer}" default="" escapeXml="true"/>" 

需要引入jstl的标签库: 

<%@taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions" %>1
2

 

如何实现企业名称超过14字符就截断

步骤:先截断,再escape 
为什么呢? 
如果先escape,那么字符串的长度就与原来不一致 
js版本:

var orgFullNameTmp = Util.omitTooLongString(orgName, me.config.truncationLength);
                            $('ul.company-name').prepend(me.createOrgDom({
                                orgId: resp.orgId,
                                orgFullName: Cjt.escape(orgFullNameTmp),
                                orgFullNameTitle: Cjt.escape(orgName)
                            }));

freeMark: 

<#if item.orgName=="">未命名企业                                                   <#else>                                                <#escape x as x?html>
                                                            <#if item.orgName?length lt 15   >
                                                                ${item.orgName}
                                                                <#else>
   ${item.orgName[0..13]}...
    </#if>                                                  </#escape>
                                                </#if>

 title escape:

title="<#escape x as x?html>${item.orgName}</#escape>"

 

jQuery中html,text方法

text 可以自动escape,所以不用手动escape, 
text根据字面意思,就是不按照html解析,而是仅仅当做普通文本. 
html()需要escape,因为html方法就是按照html来解析的.

$('#agentNameP').html(xssTitle12).attr('title', agentFullName);
            $('#preview_agentName').text(truncatTitle).attr('title', agentFullName);//预览的服务商

 

 

0
2
分享到:
评论

相关推荐

    Web安全之XSS攻击与防御小结

    攻击者对含有漏洞的服务器发起XSS攻击(注入JS代码)。诱使受害者打开受到攻击的服务器URL。受害者在Web浏览器中打开URL,恶意脚本执行。(1)反射型:发出请求时,XSS代码出现在URL中,作为输入提交到服务器端,...

    整理php防注入和XSS攻击通用过滤

    对网站发动XSS攻击的方式有很多种,仅仅使用php的一些内置过滤函数是对付不了的,即使你将filter_var,mysql_real_escape_string,htmlentities,htmlspecialchars,strip_tags这些函数都使用上了也不一定能保证绝对的...

    XSS跨站脚本攻击防御

    跨站脚本攻击是目前最为广泛的网络攻击方式,该资料对网络攻击防御有着很好地参考作用。

    PHP开发中常见的安全问题详解和解决方法(如Sql注入、CSRF、Xss、CC等)

    浅谈Php安全和防Sql注入,防止Xss攻击,防盗链,防CSRF 前言: 首先,笔者不是web安全的专家,所以这不是web安全方面专家级文章,而是学习笔记、细心总结文章,里面有些是我们phper不易发现或者说不重视的东西。所以...

    网络安全思维导图

    XSS攻击点汇总.png nmap.jpg pentest_method.jpg powershell语法.png web渗透.jpg web应用测试.jpg xml安全汇总.png 渗透流程.jpg 进阶渗透.png 社会工程学.jpg 网站入侵图.jpg 渗透测试流程.jpg 网络...

    waf ,lua,高性能web安全防护OpenStar.zip

    OpenStar是一个基于...  非官方学术类的解释,先将就理解下 关于本文对CC攻击的分析和相关的防护算法,都是我在实战中分析总结,并形成自己的方法论,不足之处、欢迎指正。 标签:OpenStar Web框架

    Web安全深度剖析(张柄帅)

    《Web安全深度剖析》总结了当前流行的高危漏洞的形成原因、攻击手段及解决方案,并通过大量的示例代码复现漏洞原型,制作模拟环境,更好地帮助读者深入了解Web应用程序中存在的漏洞,防患于未然。 《Web安全深度剖析...

    白帽子将web安全特别版

    防御xss,sql注入,系统的讲解说明,通过原理及案例分解展开讲解攻击的本质,学习后还需要不断的总结及查看其它书籍及实战

    防御SQL注入的方法总结

    SQL 注入是一类危害极大的攻击形式。虽然危害很大,但是防御却远远没有XSS那么困难。 SQL 注入可以参见:https://en.wikipedia.org/wiki/SQL_injection SQL 注入漏洞存在的原因,就是拼接 SQL 参数。也就是将用于...

    人工智能在Web安全领域的应用.pdf

    传统的基于攻击特征的安全防护,存在着特征库难于管理、较高的误报率和漏报率等诸多问题,安全防护效果难以进一步提高,而近年来出现的基于语法规则的检测虽然在一定程度上弥补了特征的不足,但是因为不理解业务,...

    详细介绍了PHP常见面试总结.docx绝对非常有帮助

    6. **安全问题**:SQL注入、XSS和CSRF攻击的防御,以及如何确保数据的安全性。 7. **性能优化**:如何优化PHP代码以提高性能,包括查询优化和缓存策略。 8. **框架知识**:对流行的PHP框架(如Laravel、Symfony、...

    逻辑漏洞挖掘文档有截图

    相比 SQL 注入、XSS 漏洞等传统安全漏洞,现在的攻击者更倾向于利用业务逻辑层的应用安全问题,这类问题往往危害巨大,可能造成了企业的资产损失和名誉受损,并且传统的安全防御设备和措施收效甚微。在网络中,存在...

    送强力打狗棒,文末领取

    触发白名单直接放行url,顺带放行了XSS攻击代码,连xss过狗代码也不用研究了,哈哈。 http://192.168.29.131:8980/sql.php?id=1 and 1=1&xss;=[removed]alert&#40;/xss/&#41;[removed]&safe;=///.js? (既有sql...

    docs:持续更新..

    :watermelon: XSS和XSRF攻击模仿及预防 :watermelon:虚拟列表+无限滚动方案 :watermelon:从AST理解bable原理 :watermelon: vite原始码 :watermelon:手写常见设计模式 :watermelon: Vue3原始码阅读总结,双向绑定/ ...

    史上最好传智播客就业班.net培训教程60G 不下会后悔

    大型互联网开发技术:代码生成、网页静态化、基于JQuery的Web2.0页面开发、AJAX、SEO、网站调优、采集器、RSS/XML、网站防黑(防XSS攻击、防注入漏洞攻击、防CC攻击、防挂马、防盗链、敏感词过滤、广告帖智能过滤)...

Global site tag (gtag.js) - Google Analytics