`
san_yun
  • 浏览: 2638263 次
  • 来自: 杭州
文章分类
社区版块
存档分类
最新评论

csrf和xss安全漏洞总结

 
阅读更多

CSRF 全称Cross-Site Request Forgery,是用户伪造了一个自动提交的url,导致其他用户点击URL时会自动执行一些危险操作。CSRF一般可以通过两种手段防御:1.只允许POST提交数据。2.提交数据时加上token。

XSS 全称Cross-site Scripting,是用户提交了非法的脚本内容到网站,导致其他用户访问页面时非法脚本会被执行。XSS一般提供对请求参数进行过滤防御。两种攻击的详情内容可以参考:

https://www.owasp.org/index.php/Cross-Site_Request_Forgery_(CSRF)#Examples CSRF攻击原理

https://www.owasp.org/index.php/Cross-site_Scripting_(XSS)#Examples XSS攻击原理

 

 

幸运的是owasp(open web application secutiry project)已经提供了一系列完善的安全框架来解决这类问题。(owasp项目列表:https://www.owasp.org/index.php/OWASP_Project_Inventory#tab=Flagship_Projects)这里介绍一下owasp antisamy的使用。

maven依赖:

<dependency>
	<groupId>org.owasp.antisamy</groupId>
	<artifactId>antisamy</artifactId>
	<version>1.5.3</version>
</dependency>

 

import org.owasp.validator.html.AntiSamy;
import org.owasp.validator.html.Policy;
import org.owasp.validator.html.PolicyException;

public class XSSChecker {

    protected Policy policy;

    /**
     * relative to japa python root
     */
    protected String policyPath = "WEB-INF/ebay.xml";

    protected AntiSamy as = null;

    public void setPolicyPath(String policyPath) {
        if (policyPath != null) {
            this.policyPath = policyPath;
        }
    }

    public void init() throws PolicyException {
        policy = Policy.getInstance(policyPath);
        as = new AntiSamy(policy);
    }

    public String scan(String html) {
        if (html == null) {
            return "";
        }
        try {
            return as.scan(html, AntiSamy.SAX).getCleanHTML();
        } catch (RuntimeException e) {
            return html;
        } catch (Exception e) {
            return html;
        }
    }

}

 在servlet中这样使用:

class XSSFilter(object):

    def scan(self, request):
        if request.GET:
            request.GET0 = request.GET
            ret = {}
            for k, v in request.GET.items():
                ret[k] = self.xssfilter.scan(v)
            request.GET = ret
        if request.POST:
            request.POST0 = request.POST
            ret = {}
            for k, v in request.POST.items():
                ret[k] = self.xssfilter.scan(v)
            request.POST = ret

router:
xssfilter = XSSFilter(config.getServletContext().getRealPath(''))
xssfilter.scan(request)

 

owasp AntiSamy参考资料:

http://www.owasp.org.cn/owasp-project/download/owasp-antisamy-java/view

https://www.owasp.org/index.php/AntiSamy

更多安全参考:

http://www.freebuf.com/articles/web/9977.html 防御XSS的七条原则

http://www.freebuf.com/articles/web/9928.html XSS解决方案系列之一:淘宝、百度、腾讯的解决方案之瑕疵

http://blog.csdn.net/kkdelta/article/details/17374927 一个反射型XSS例子的解析

 

http://www.howtocreate.co.uk/crosssite.html

https://www.owasp.org/index.php/XSS_%28Cross_Site_Scripting%29_Prevention_Cheat_Sheet

http://stackoverflow.com/questions/2113984/is-replacing-and-with-lt-and-gt-enough-to-prevent-xss-injection

http://blog.csdn.net/kaosini/article/details/8778775http://blog.csdn.net/kaosini/article/details/8778775 

http://blog.csdn.net/kaosini/article/details/8778775 

案例:

<DIV »
STYLE="background-image: »
url(&#1;javascript:alert('XS »
S'))">

 

 

 

 

分享到:
评论

相关推荐

    xss+csrf+html练习源码.rar_XSS_csrf_csrf源码_xss源码_xss练习源码

    这个“xss+csrf+html练习源码.rar”文件提供了针对这些漏洞的实战练习,帮助安全研究人员或开发者加深对这些威胁的理解和防御能力。 XSS攻击主要分为反射型、存储型和DOM型三种类型。反射型XSS发生在用户点击链接...

    XSS漏洞挖掘与安全防护.pdf

    XSS(Cross Site Scripting,跨站脚本攻击)是一种常见的Web安全漏洞。它允许攻击者在用户的浏览器中执行脚本,从而窃取信息或进行恶意操作。XSS攻击有多种形式,包括反射型(存储型和DOM型)。XSS通常通过网站或...

    83.WHUCTF之CSS注入、越权、csrf-token窃取及XSS总结_杨秀璋的专栏-CSDN博客1

    【网络安全自学篇】八十三.WHUCTF之CSS注入、越权、csrf-token窃取及XSS总结 本文主要介绍了网络安全领域中常见的几种攻击手段,包括CSS注入、越权访问、csrf-token窃取以及XSS跨站脚本攻击,并通过WHUCTF比赛中的...

    预防XSS攻击和SQL注入XssFilter

    XSS是一种经常出现在web应用中的计算机安全漏洞,它允许恶意web用户将代码植入到提供给其它用户使用的页面中。比如这些代码包括HTML代码和客户端脚本。攻击者利用XSS漏洞旁路掉访问控制——例如同源策略(same origin...

    javaweb配置xssproject,完美解决安全检测报XSS漏洞

    总结来说,XSSProject是一个强大的JavaWeb安全工具,通过合理的配置和使用,可以显著提高应用的抗XSS攻击能力。理解其核心功能和配置步骤,对于保障Web应用的安全性至关重要。同时,开发者还应该关注其他安全措施,...

    使用Filter针对Xss攻击,sql注入,服务器访问白名单,以及csrf进行安全校验

    主要使用Filter针对Xss攻击,sql注入,服务器访问白名单,以及csrf进行安全校验 1,主要实现的是三大块功能:Xss攻击,sql注入,服务器白名单,以及csrf 2,此Filter为真实项目部署,在XssHttpServletRequestWrapper...

    xss漏洞,网站安全编程,黑客编程

    6. 定期更新和修补:保持系统和框架的最新状态,及时修复已知安全漏洞。 7. 使用安全的编程语言:例如,使用PHP的htmlspecialchars函数、JavaScript的innerText属性等来防止XSS。 **黑客编程与防御** 了解黑客...

    XSS跨站脚本攻击漏洞修复方法

    及时更新应用程序和服务器软件,修复已知的安全漏洞。 7. **教育用户**: 提高用户对XSS攻击的认识,教导他们识别和避免点击可疑链接。 8. **安全编程最佳实践**: 开发人员应遵循OWASP(Open Web Application ...

    hucart-含有CSRF漏洞的源码.zip

    CSRF(Cross-Site Request ...总之,理解和掌握CSRF漏洞对于任何Web开发者来说都至关重要,因为这直接影响到用户数据的安全和应用的可靠性。在日常开发中,应时刻保持警惕,遵循最佳安全实践,以防止此类攻击的发生。

    第一节 CSRF原理介绍-01

    CSRF漏洞总结 CSRF漏洞是一种常见的攻击方式,攻击者可以通过伪装成受信任用户请求受信任的网站,执行某些非法操作。为了防止CSRF漏洞,开发者需要采取相应的安全措施,例如验证用户的身份,限制用户的操作权限等。...

    Web应用安全:XSS安全隐患产生原因.pptx

    Web应用安全领域中,XSS(Cross-Site Scripting,跨站脚本)是一种常见的安全隐患,它主要源于网站对用户输入的数据处理不当,允许恶意的...通过以上措施,可以有效降低XSS攻击的风险,保障用户和网站的安全。

    跨站攻击(XSS+CSRF).docx

    总结来说,XSS和CSRF是两种常见的Web安全威胁,理解和掌握这两种攻击的原理、实施方式以及防护措施是保障网络安全的重要一环。通过实际操作和理论学习,学生将深化对Web安全的理解,提高应对网络攻击的能力。

    web大作业.docx

    CSRF 漏洞和 XSS(Cross-Site Scripting,跨站脚本攻击)都是常见的 web 安全漏洞,但它们之间存在一定的联系和区别。CSRF 漏洞是通过欺骗服务器执行未经授权的操作,而 XSS 漏洞是通过注入恶意脚本来攻击用户。虽然...

    XSS平台网站源码.zip

    XSS(Cross-Site Scripting,跨站脚本攻击)是一种常见的网络安全漏洞,它允许攻击者在用户浏览器中注入恶意脚本,进而控制用户的交互、窃取敏感信息或执行其他恶意操作。XSS平台网站源码是用于学习和研究XSS攻击及...

    Using_XSS_to_bypass_CSRF_protection

    跨站脚本攻击(Cross-Site Scripting,简称XSS)是Web应用程序中最常见的安全漏洞之一。XSS攻击主要发生在客户端,即用户的浏览器端。这种攻击方式之所以常见,是因为许多Web应用在处理用户提交的数据时缺乏足够的...

    csrf漏洞.rar

    **CSRF(Cross-Site Request Forgery,跨站请求伪造)漏洞...综上所述,了解和防范CSRF漏洞对于保障Web应用的安全至关重要。开发者应该时刻警惕这类攻击,确保应用采取有效的防护措施,以保护用户的隐私和数据安全。

Global site tag (gtag.js) - Google Analytics