gpt4 book ai didi

security - 如何在允许用户发布外部图像的同时防止 XSS 注入(inject)

转载 作者:行者123 更新时间:2023-12-04 20:22:25 24 4
gpt4 key购买 nike

一位用户最近向我报告说,他们可以利用通过论坛提供给他们的 BBCode 标签 [img]。
[img=http://url.to.external.file.ext][img]
当然,它会显示为损坏的图像,但是浏览器会在那里检索文件。我自己测试过,果然是合法的。

除了下载图像并通过 PHP 检查它是否是合法图像之外,我不确定如何防止这种类型的 XSS 注入(inject)。这很容易被一个非常大的文件滥用。

还有其他解决方案吗?

最佳答案

您可以请求 header 并检查文件是否实际上是图像。

编辑:

抱歉,我无法更深入地回答;我正在享用晚餐。

我看到它有两种方式:

  • 您在提交或查看帖子时检查提供的地址是否实际上是图像,您可以通过检查标题(确保它实际上是图像)或使用文件扩展名来完成此操作。这不是万无一失的,并且有一些明显的问题(动态更改图像等)。
  • 保护您的网站,即使 [img] 标签存在问题也不会出现真正的问题,例如:恶意代码不能使用被盗的 cookie。
  • 使用请求外部图像并修改 header 的脚本。

  • 检查远程文件内容类型的基本方法:
    $Headers = get_headers('http://url.to.external.file.ext');
    if($Headers[8] == 'text/html') {
    echo 'Wrong content type.';
    exit;
    }

    关于security - 如何在允许用户发布外部图像的同时防止 XSS 注入(inject),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4988560/

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