我真的很怀疑我的捐款表格是否可以安全使用XSS(也许我一直在阅读太多的XSS文章)。我使用了PayPal提供的按钮生成器并将其插入到我的页面中,但我还添加了一个select元素,其中'item_name'值作为其name属性(PayPals html值之一):
即。像这样:
<select name="item_name">
<option>...</option>
...
</select>
我首先要关注的是,这是否可以,因为我将捐赠按钮存储在我的帐户中作为已保存的按钮,而PayPal表示将他们“按原样”提供给您的代码放入您的页面,而无需更改。我知道它是不言而喻的,但它只是一个厚颜无耻的选择元素,可以提供更好的用户体验:P。那可以吗?
我想问的另一个问题是我应该在PayPal给我的表单上创建action属性指向我的控制器中的一个函数,该函数使用htmlspecialchars()清理select元素值(甚至需要检查select这个目的的元素?),并在该函数中以某种方式指向PayPal网址?
我的网站上没有任何其他表格,除了我的电子邮件表单,我将应用XSS过滤,但这个PayPal表格让我对如何保护它感到困惑。
答案 0 :(得分:1)
如果您没有从客户端获取信息并在网站上显示,您无需担心。
XSS的两个主要案例是基于数据库和请求。在基于数据库的系统中,攻击者将恶意代码提交给公开显示的字段(评论表单,沿着这些行)。然后,只要显示此表单中的数据,就会运行代码 - 假设数据库没有正确清理。
另一种方法是通过GET请求进行XSS。攻击者通过恶意代码作为URL中的参数向受害者发送指向您站点的链接。如果此参数显示在页面上且未正确清理,则可能发生XSS。
echo "You just bought a " . $_GET['itemname'];
您不必担心自己的情况,也不要先打电话给控制器进行消毒--PayPal会自行处理。
附加说明:您无需担心电子邮件表单中的XSS,Javascript不会由邮件客户端运行。您需要担心的是header injection。
答案 1 :(得分:1)
使用XSS无法更改PayPal表单(html),除非入侵者可以访问您的后端,您可以选择更改显示PayPal表单的HTML页面。但在这种情况下,PayPal表格并不是您应该担心的。 顺便说一句,可以像在这种情况下那样思考,安全性是第一位的。