【发布时间】:2010-01-06 18:55:55
【问题描述】:
我有一个使用框架的网站。是否仍然可以从浏览器中让某人使用地址栏为其中一个框架制作发布数据?其中 2 个框架是静态的,另一个框架具有使用 post 进行通信的 php 页面。这似乎不可能,但我想确定一下。
【问题讨论】:
我有一个使用框架的网站。是否仍然可以从浏览器中让某人使用地址栏为其中一个框架制作发布数据?其中 2 个框架是静态的,另一个框架具有使用 post 进行通信的 php 页面。这似乎不可能,但我想确定一下。
【问题讨论】:
不,不能从地址栏POST数据。您只能通过向 URL 添加参数来从那里发起 GET 请求。不能以这种方式附加 POST 正文。
无论如何,很有可能将 POST 请求发送到您的网络服务器以获取框架中的页面。 HTTP is just the protocol 与您的浏览器和网络服务器相互通信。 HTTP 对帧或 HTML 一无所知。框架中的页面有一个 URI,就像任何其他页面一样。当您单击一个链接时,您的浏览器会询问服务器它是否具有该 URI 的 something。服务器将检查它是否具有该 URI 的内容并做出相应的响应。它不知道会返回什么。
使用TamperData for Firefox 或Fiddler for IE 等工具,任何人都可以轻松修改发送到您服务器的HTTP 请求。
【讨论】:
无论来源和/或环境如何,$_REQUEST 数组中的任何数据都应被视为同等武装和危险。这包括$_GET、$_POST 和$_COOKIE。
【讨论】:
不能在地址栏中添加POST数据。
您应该始终检查和清理您在 PHP 代码中获得的所有数据,因为任何人都可以将数据发布到您的所有页面。
不要相信来自页面外部的数据。清洁并检查。
【讨论】:
也许不是来自浏览器,但他们仍然可以捕获请求(修补它)并将其转发到提供的目的地,使用类似 burp 代理的工具。
【讨论】:
回答您的问题:不,无法使用地址栏发送帖子数据。
但是可以快速将帖子数据发送到任何网址。例如使用 cURL 或 Firefox 扩展。因此,请务必验证和清理您收到的所有数据,无论是 POST 还是 GET 或 UPDATE 等等。
这不是 iFrame 或 php 特定的,因此应该在每个 web 应用程序中考虑它。永远不要依赖任何人发送的数据是否正确、有效或安全——尤其是用户发送的数据。
【讨论】:
是的,他们绝对可以,使用像 Firebug 这样的工具,以及像 Gordon 列出的那些显然更专业的工具。此外,即使他们无法在您网站的浏览器中执行此操作,他们也可以始终创建自己的表单,或通过脚本或命令行工具提交发布数据。
您绝对不能依赖客户端来确保安全。
【讨论】:
<form action="http://controlfreak123.bla/response.php"><input type="hidden" value="malice" name="controlfreaks_element_name" /></form>,然后提交表格。他们只需将其保存在桌面上,然后使用 Web 浏览器打开即可。您可能正在使用会话,但使用脚本工具也很容易解决。 (例如,通过在获得有效会话 ID 后发送带有会话 ID 的 cookie 标头)