【问题标题】:Securely posting and then printing JavaScript tags安全地发布和打印 JavaScript 标签
【发布时间】:2012-04-12 07:17:12
【问题描述】:

我正在尝试用 PHP 开发一个后端广告检查应用程序。我们有很多可以展示广告的地方,而且几乎所有地方都有其独特的要求(它们在游戏中展示,这就是为什么每个人的尺寸、重量、格式等都不同)。由于这可能会导致针对不同游戏的广告系列产生很多混乱(代理商向我们发送格式错误的广告),我们需要检查每个广告以确保其按预期工作。

如果我们的客户将广告文件发送给我们进行检查,该应用程序就可以正常工作。但大多数时候他们会发送 Adserver 代码,因此他们可以跟踪结果,而这些代码通常是 javascript 和 iframe 代码。

问题是如何在所有浏览器上安全地允许插入 javascript 和 iframe 代码,并将其呈现到回发页面上的页面(用于视觉检查),而不会有 XSS 问题的风险?

目前,由于安全措施的原因,我已设法在除 Chrome 之外的所有浏览器上发布代码并打印到回发页面。但既然无论如何我都必须解决这个问题,我怎样才能让它在所有浏览器上运行,同时仍然确保应用程序是安全的?

谢谢。 德西奥

【问题讨论】:

  • 你能清楚地说明你的问题吗?
  • 我相信@decio 希望将客户标签嵌入到页面中,以查看他们实际要展示的广告,但要确保查看者的浏览器安全。如果我是对的,那么它可能是一种解决方法,方法是使用url2png.com 之类的服务制作仅包含广告标签的特殊页面的屏幕截图,然后将结果嵌入回发页面。
  • 另一种想法,也许他们将发布的代码分解为 dom 元素,并在清理后重建它们以正确显示。但我不知道该怎么做,因为有很多不同的标签可以用于广告。以下示例:
  • 很抱歉在预览 cmets 上缺少格式化。我的键盘没有反引号,我不小心刷新了页面,失去了编辑的可能性。

标签: php javascript post tags xss


【解决方案1】:

如果您包含第 3 方 javascript 代码,您总是有 XSS 的风险。假设您正在测试来自广告提供商的代码:

<script src="http://some3rdPartySite.com/script.js"></script>
  1. 可以更改脚本以在目标域和所有其他页面上显示并导致不同的结果。也就是说,您可以看到它希望如何展示给您,但您不能确定它在您客户的某些游戏中是否会相同。
  2. 广告提供商可以随时更改其服务器上的脚本,可能在您的测试之后。

如果您不信任您的广告供应商,我建议让他们选择图片 + 网址或 iframe 网址 + 尺寸。你也可以用 iframe 做“坏事”(比如破坏框架,从而从你的客户页面重定向),但你仍然必须遵守跨域策略。如果你让 javascript 代码被执行,情况就不是这样了。

您还可以为广告供应商提供自己的分析来满足他们的需求。

无论如何,为了测试 javascript 结果,您可以在任何浏览器上使用 Selenium 驱动程序:http://seleniumhq.org/。它让您可以加载任何页面、执行 javascript 代码并获得结果。通过这种方式,您可以加载您的 javascript 代码、在 DOM 中搜索节点并检查它们的尺寸等。

另外,你可以看看sahi:http://sahi.co.in/w/

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-10-20
    • 2011-08-03
    • 2020-07-09
    • 1970-01-01
    • 1970-01-01
    • 2013-09-21
    • 2022-12-17
    • 1970-01-01
    相关资源
    最近更新 更多