PHP清理并检查simplexml的输入过程?

时间:2011-11-04 10:41:21

标签: php html

我通过POST将textarea输入框的内容从html传递到我的php文件(不允许使用javascript)。

然后我使用simplexml在用户输入的网址上获取Feed。

不幸的是,用户可以在textarea中输入任何内容。我被告知是危险的。

使用PHP清理和保护POST内容以使其为simplexml过程做好准备和安全的推荐方法是什么?

(基本上,确保它们不是恶意的,并检查它们是否是有效网址)

2 个答案:

答案 0 :(得分:0)

  

我被告知是危险的。

这是错的。

  

清理和保护POST内容的推荐方法是什么?

恐怕没有什么可以保障

答案 1 :(得分:0)

$ _POST数组中的内容是字符串,所以那里没有任何不安全的东西。

  1. 用户输入php代码?它肯定不会被执行,所以这里没有问题(这是其中许多其他原因,不使用eval()这样的东西)。因此,无论他编写什么php函数或命令,它都将被读作一个简单的字符串,而字符串无论它们包含什么都无害。
  2. 用户输入恶意JavaScript?仍然没有问题,因为它需要浏览器来执行,因为PHP内部的javascript或数据库中的重要内容是非常无用的。
  3. 这导致了真正的问题:用户提供的内容只有在传递给目标媒体之前才需要“消毒”。如果您要提供数据库,请使用引擎提供的转义工具。如果您要在网页上输出它,那就需要清除恶意XSS攻击。

    在实际对其内容执行任何操作之前,清理POST数组本身是错误的,因为您无法确定何时何地需要使用该内容;因此,甚至不要考虑在获得POST值后立即使用strip_tags()或模拟函数,而是按原样传递它,并在需要时添加必要的转义/清理。

    你实际需要做什么,然后,你只知道,所以采取相应的行动