1

有人可以通过这种方法将一些恶意代码注入我的脚本吗?如果有人可以,最好的做法是什么?

我正在尝试创建一种类似于 reddit 的建议标题的方式。

4

3 回答 3

1

真正简短的答案是YES。一般而言,HTML 的任何“外部”加载都是不安全的——事实上,任何来自用户的任何数据的加载都可能是不安全的——所有用户提供的数据都必须经过验证和审查。

但是,根据您提供的信息,实际上不可能给出明确的答案。这是因为它取决于哪个文件、文件如何控制、文件加载后如何处理。

添加此信息,也许我可以给出更好的答案。

于 2012-07-13T12:04:35.463 回答
0

我假设当您询问该函数/方法的安全性时,您正在谈论注入一些将在服务器上执行的代码而不是XSS.

我不是C/C++专家,但是查看作为背后方法dom_load_html()的源代码loadHTMLFile(),我可以看到它遵循结构良好的逻辑,并且除了在遇到问题时安全失败之外,流程也得到了很好的控制。

同样,我是新手,您可能需要一些专家C/ C++,以上只是我的个人意见。

于 2012-07-13T12:17:23.710 回答
-1

这至少存在一个安全问题: https ://www.mediawiki.org/wiki/XML_External_Entity_Processing

上面的页面说 XML 标准定义了一种指定外部实体的方法,该实体可以指定从 URL 加载数据。它也可以从本地资源加载数据。

PHP 的 xml 库使用 libxml2,它默认实现该行为。有一种方法可以禁用它,但这也会禁用库的其他一些功能。最好的方法是对方法 loadXML() 和 loadHTML() 禁用它:

    $dom = new DOMDocument();
    $oldValue = libxml_disable_entity_loader( true );
    $dom->loadXML( $xml );
    libxml_disable_entity_loader( $oldValue );
于 2020-06-10T11:03:04.317 回答