0

我真的很怀疑我的捐赠表格是否可以免受 XSS 攻击(也许我已经阅读了太多 XSS 文章)。我使用了 PayPal 提供的按钮生成器并将其插入到我的页面中,但我还添加了一个 select 元素,该元素具有“item_name”值作为其名称属性(PayPals html 值之一):

即像这样:

<select name="item_name">
<option>...</option>
...
</select>

我的第一个问题是这样做是否可行,因为我将捐赠按钮作为保存按钮存储在我的帐户中,而 PayPal 表示将他们“按原样”提供给您的代码放入您的页面中,无需更改。我知道它不言自明,但它只是一个厚颜无耻的选择元素,可以提供更好的用户体验:P。可以吗?

我想问的另一个问题是,我是否应该让 PayPal 给我的表单上的 action 属性指向我的控制器中的一个函数,该函数使用 htmlspecialchars() 清理选择元素值(是否甚至有必要检查 select 元素这样目的?),并在该函数中以某种方式指向 PayPal url?

除了我将应用 XSS 过滤的电子邮件表单之外,我的网站上没有任何其他表单,但是这个 PayPal 表单让我对如何保护它感到困惑。

4

2 回答 2

1

PayPal form (html) can't be changed using XSS unless intruder gets access to your backend where you have option to change those HTML pages that are displaying PayPal form. But in this case the PayPal form is not what you should be worried about. By the way, it's OK to think like you did at this case, security is at first place.

于 2013-11-05T19:21:22.957 回答
1

如果您没有从客户那里获取输入并将其显示在您的网站上,则无需担心。

XSS 的两个主要案例是基于数据库和基于请求的。在基于数据库的系统中,攻击者将恶意代码提交到公开显示的字段(评论表单,类似这些内容)。然后,只要显示此表单中的数据,代码就会运行 - 假设数据库未正确清理。

另一种方法是通过 GET 请求的 XSS。攻击者向受害者发送一个指向您站点的链接,其中包含恶意代码作为 URL 中的参数。如果此参数显示在页面上并且未正确清理,则可能会发生 XSS。

echo "You just bought a " . $_GET['itemname'];

您不必担心自己的情况,也不必费心先发送给控制器进行消毒 - PayPal 会自己处理。

附加说明:您无需担心电子邮件表单中的 XSS,Javascript 不是由邮件客户端运行的。您需要担心的是标头注入

于 2013-11-05T19:09:48.140 回答