gpt4 book ai didi

security - 什么是跨站脚本?

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

this site ( archived snapshot ) 在“XSS 理论”下,它说:

the hacker infects a legitimate web page with his malicious client-side script



阅读本文时我的第一个问题是:如果应用程序部署在安全的服务器上(例如银行的情况),黑客如何能够访问网页的源代码?或者他/她可以在不访问源代码的情况下注入(inject)恶意脚本吗?

最佳答案

使用跨站点脚本,可以感染生成的 HTML 文档,而不会导致 Web 服务器本身被感染。 XSS 攻击使用服务器作为载体将恶意内容呈现给客户端,或者从请求立即返回(反射攻击),或者通过存储和检索延迟(存储攻击)。

XSS 攻击利用了服务器生成页面的弱点,该弱点允许请求数据以原始形式显示在响应中。该页面仅反射(reflect)请求中提交的内容......但该请求的内容可能包含突破普通文本内容的字符并引入开发人员不打算的 HTML 或 JavaScript 内容。

这是一个简单的例子。假设您使用某种模板语言来生成 HTML 页面(如 PHP、ASP、CGI 或 Velocity 或 Freemarker 脚本)。它采用以下页面并将“ ”替换为“name”查询参数的未转义值。

<html>
<head><title>Example</title></head>
<body>Hi, <?=$name?></body>
</html>

有人使用以下 URL 调用该页面:
http://example.com/unsafepage?name=Rumplestiltskin

应该期望看到此消息:
Hi, Rumplestiltskin

使用更恶意的内容调用同一页面可用于大幅改变页面或用户体验。
http://example.com/unsafepage?name=Rumplestiltskin<script>alert('Boo!')</script>

这个 URL 不仅会说“嗨,Rumplestiltskin”,还会导致页面弹出一条警告消息,上面写着“嘘!”。当然,这是一个简单的例子。可以提供一个复杂的脚本来捕获击键或要求验证名称和密码,或者清除屏幕并用令人震惊的内容完全重写页面。它看起来仍然像来自 example.com,因为页面本身确实如此,但内容是在请求中的某处提供的,并且只是作为页面的一部分反射回来。

所以,如果页面只是吐出请求者提供的内容,而您正在请求该页面,那么黑客如何感染您的请求?通常,这是通过在网页上或通过电子邮件发送给您或在 URL 缩短的请求中提供链接来实现的,因此很难看到 URL 中的困惑。
<a href="http://example.com?name=<script>alert('Malicious content')</script>">
Click Me!
</a>

具有可利用 XSS 漏洞的服务器本身不会运行任何恶意代码——它的编程保持不变——但它可以被用来向客户端提供恶意内容。

关于security - 什么是跨站脚本?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15755323/

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