【发布时间】:2010-11-10 14:20:39
【问题描述】:
我有一些可公开访问的 XML 文件存储在网络服务器上,我可以通过不可公开访问的 html 和 php 文件对其进行更新。我已经使用会话和令牌保护了 php 文件。我只是想知道我是否缺少任何东西。
问题:任何人都可以通过创建自己的 html 表单和 php 文件来将数据注入 XML 文件吗?可以采取哪些额外措施来完全保护 XML 文件?
谢谢
【问题讨论】:
我有一些可公开访问的 XML 文件存储在网络服务器上,我可以通过不可公开访问的 html 和 php 文件对其进行更新。我已经使用会话和令牌保护了 php 文件。我只是想知道我是否缺少任何东西。
问题:任何人都可以通过创建自己的 html 表单和 php 文件来将数据注入 XML 文件吗?可以采取哪些额外措施来完全保护 XML 文件?
谢谢
【问题讨论】:
问:谁(网络服务器上的哪些用户)可以写入文件?它们是用户可写的、组可写的还是世界可写的?
理想情况:只有拥有用户才能写入文件。这可以防止服务器上的其他人(root 除外)与他们混淆。
问:它们是如何保护的?您需要在网络服务器上登录吗?你在使用 SSL 吗?还是您只是将带有一些用户名和密码的表格放在一起?它们是可写的,写给谁?
回答您的问题:如果 XML 文件仅对特定用户可写(例如“悖论”)并且更新文件的 PHP 脚本以该用户身份运行但其他用户不可写,则您的文件是就像您的计算机、服务器、网络和脚本中最薄弱的环节一样安全。
【讨论】:
我认为这仅取决于您开发私人行政区域的方式。
例如,您必须确保直接写入 xml 文件的 php 脚本以某种方式受到未经授权的访问(会话、密码、.htaccess、身份验证令牌等)的保护,显然您不应该只保护管理表单(用户界面)...
如果您可以提供有关实施的更多详细信息,那么提供帮助会更容易......
【讨论】:
“我在网络服务器上存储了一些可公开访问的 XML 文件,我可以通过不可公开访问的 html 和 php 文件对其进行更新。我使用会话和令牌保护了 php 文件。我只是想知道是否有任何东西我迷路了。” - 好吧,如果您启动了会话,您可能会在此处显示指向 XML 文件的链接。如果没有会话没有链接,有意义吗?示例:如果您的 Web 根目录是 /var/www/html,您可能会为 XML 文件创建一个单独的目录,例如 /var/www/xml 现在此文件夹无法从 URL 访问,但您可以链接文件) 在会话身份验证成功时从您的 PHP 脚本中调用。
// index.php (pseudo code)
if($authenticated) {
// echo '<a href="/var/www/xml/file.xml">Display XML</a>';
} else {
// no links to files
}
“问题:任何人都可以通过创建自己的 html 表单和 php 文件将数据注入 XML 文件吗?可以采取哪些额外措施来完全保护 XML 文件?” - 答案是肯定的,人们可以创建一个 php(或其他语言)来获取您的 xml 并修改其内容。但是他们不能修改您站点上的 XML(您的脚本使用的 XML),他们可以从您的站点读取 XML 并将其解析出来或在另一个站点上对其进行操作(例如 Web 服务)。我不确定您是如何获得 XML 权限的,而且我不知道有任何 XML 漏洞(但我确信有一些漏洞),但是将 XML 注入您的 XML 应该非常困难。您可以考虑 XML 文件的只读文件权限,以限制最终用户的功能。
希望对你有帮助
【讨论】: