gpt4 book ai didi

xss - XSS 背后的一般概念是什么?

转载 作者:行者123 更新时间:2023-12-03 13:11:26 28 4
gpt4 key购买 nike

Cross-site scripting (XSS) is a type of computer security vulnerability typically found in web applications which enable malicious attackers to inject client-side script into web pages viewed by other users. An exploited cross-site scripting vulnerability can be used by attackers to bypass access controls such as the same origin policy. Cross-site scripting carried out on websites were roughly 80% of all security vulnerabilities documented by Symantec as of 2007.



好的,这是否意味着黑客在访问具有未转义输入的合法站点时制作了一些恶意 JS/VBscript 并将其传递给毫无戒心的受害者?

我的意思是,我知道 SQL 注入(inject)是如何完成的......

我特别不明白 JS/VBscript 怎么会造成这么大的伤害!我认为它们仅在浏览器中运行,但显然损坏范围为 keylogging to cookie stealing and trojans .

我对 XSS 的理解正确吗?如果没有,有人可以澄清吗?

如何防止 XSS 在我的网站上发生?这似乎很重要; 80% 的安全漏洞意味着它是危害计算机的极其常见的方法。

最佳答案

由于已经给出了关于 XSS 如何是恶意的答案,我将只回答以下未回答的问题:

how can i prevent XSS from happening on my websites ?



至于防止 XSS,您需要 HTML 转义任何 用户控制当它们即将在页面上重新显示时输入。这包括请求 header 、请求参数和要从数据库提供的任何存储的用户控制输入。尤其是 < , > , "'需要转义,因为它可能会使重新显示此输入的周围 HTML 代码变形。

几乎所有 View 技术都提供了转义 HTML(或 XML,这也足够了)的内置方法 entities .

在 PHP 中,您可以使用 htmlspecialchars() .例如。

<input name="foo" value="<?php echo htmlspecialchars($foo); ?>">

如果您还需要转义单引号,则需要提供 ENT_QUOTES参数,另请参阅前面链接的 PHP 文档。

在 JSP 中,您可以使用 JSTL <c:out> 来做到这一点或 fn:escapeXml() .例如。

<input name="foo" value="<c:out value="${param.foo}" />">

或者

<input name="foo" value="${fn:escapeXml(param.foo)}">

请注意,您实际上不需要在请求处理期间转义 XSS,而只需要在响应处理期间。不需要在请求处理期间转义,它迟早可能会使用户输入错误(作为站点管理员,您还想知道相关用户实际输入的内容,以便在必要时采取社交行动)。对于 SQL 注入(inject),只需要在数据即将被持久化到数据库的那一刻,在请求处理过程中进行转义即可。

关于xss - XSS 背后的一般概念是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2233015/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com