在 php 中发送 json 响应时如何删除响应标头?
我正在向 php 页面(例如 page1.php)发出 ajax 请求。在 page1.php 中,我有一个 header("Location:page2.php?password=1234")
代码,它使用密码作为 GET 参数重定向到 page2.php。 page2.php 给出一个 json 响应。 问题是,当我检查元素并检查 Safari 浏览器中的资源时,我能够在响应标头部分中看到位置 page2.php?password=1234"。 这是一个安全问题。请建议如何在发送 json 响应时删除响应标头?我正在使用 PHP 5.2.6。
I am making an ajax request to a php page e.g page1.php. In page1.php I have a header("Location:page2.php?password=1234")
code which redirects to page2.php with the password as a GET parameter. page2.php gives a json response.
The problem is that when I do inspect element and check the resources in Safari browser, I am able to see the location page2.php?password=1234" in the response header part.
This is a security issue. Please suggest how can I remove the response headers when sending the json response? I am using PHP 5.2.6.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
为什么不为登录用户使用 SESSION?还是简单的 Cookie?
Why just don't use SESSION for logged user? Or plain simple Cookie?
您可以从第一页查询并显示其输出,而不是重定向到第二页。
假设您的设置支持它,最简单的方法可能是在
page1.php
中包含以下内容:Rather than redirecting to the second page, you could query it from the first page, and display its output.
Assuming your setup supports it, the easiest way is probably to include the following in
page1.php
:作为穷人的防御,您可以使用某种加密函数(md5、sha1、crc32)从密码生成哈希并传输它而不是密码。不过,最好重做整个系统以避免这种情况。
不过,此解决方法并不能回答您的问题。
as a poor man defense, you could use some kind of crypt functions (md5, sha1, crc32) to generate hash from password and transfer it instead of password. Though, it is better to redo whole system to avoid it.
This workaround does not answer your question, though.