2011-12-14 131 views
2

假设我有一个页面,无论出于何种原因,都需要将其指向两个不同的页面处理页面。PHP重定向安全

所以用户提交网页A上一个形式,将他们带到页面A.post,然后带他们到页面A.complete,最终将它们导向它第A与提交的信息。

A.post和A.complete是纯粹的PHP,其中数据库魔术正在发生,用户通常永远不会去那里,如果他们直接去A.post或A.complete,他们会被提供一个空白页。

说A.post通过查询字符串发送A.complete数据,在$ _GET。用户是否有可能以某种方式访问​​A.post,以便在重定向发生时查看这些GET var或通过查看其页面历史记录?

希望我已经清楚,欢呼!

回答

2

我可以问,为什么不这样做“幕后”,并A.post不只是include('A.complete');

您重定向你有一个错步的机会,用户干预,或头的黑客(意外输入)的任何时间。

在服务器和客户端范围内保留您需要的任何逻辑。除非切换页面的真正原因(可能这是域名转移),否则我会将所有处理保留在一页上。如果您需要切换,请确保您有某种形式的检查步骤,因此用户干预不是问题。

p.s.你的直接答案是YES。 (Firefox有控制 + 转变 + ķ,因为我敢肯定,很多浏览器提供直接现在(或者通过某种形式的插件)。)

0

是否有你所要做的一个原因重定向?网页A是否可以简单地发布到自己?在那个过程中,它检查是否正在完成一个后置操作。如果是这样,请在显示适当结果之前执行“A.post”的PHP代码,然后执行“A.complete”。

我想我不知道为什么你需要做所有的重定向。

至于回答您的问题正式对用户能够看到的GET瓦尔,是的,这是可能的用户来捕获这些数据并查看它。

1

是的,这将有可能为他们查看GET变量,但他们也将能够看到帖子的变量也是如此。如果您担心值的安全性,请添加盐加密,然后将其解密为服务器端。或者使用POST来代替SESSION变量,但如果它只是一个简单的表单,POST将是首选。