我正在尝试使用 href 请求发出 post 请求(我需要我的页面在 url 中使用参数后重定向到该页面) 以下是检查 POST 请求是否有帮助的代码:
if ($_POST['pw'] == 'password') {
echo ('<iframe height="100%" width="100%" scrolling="no" src="html/book.html?pw=passcode&ver=2014_09_29_11:08&" allowfullscreen webkitallowfullscreen mozallowfullscreen />');
} else {
die ("<h1>Access Denied !</h1>");
}
最佳答案
不,您不能使用 src
发出 HTTP POST 请求或href
属性,只有 HTTP GET 请求可以这样发出。
GET
请求通过查询字符串在 URL 中传递参数,并且请求正文为空。它们看起来像:
GET /page.php?var1=foo&var2=bar HTTP/1.1
Host: www.example.com
POST
请求在请求正文中传递参数。它们看起来像
POST /page.php HTTP/1.1
Host: www.example.com
var1=foo&var2=bar
您可以制作POST
请求还包括GET
参数,但这在技术上是不好的做法,并且依赖于具有允许此操作的宽容 Web 服务器和 CGI 网关。例如:
POST /page.php?var1=foo HTTP/1.1
Host: www.example.com
var2=bar
考虑到您的问题的上下文,应该提到的是,POST 请求对于密码传输来说仅稍微安全一些,因为它们在查询字符串中不包含密码,而查询字符串可能会被服务器记录或存储在浏览器的历史记录中。 但是,它们仍然以纯文本形式传输,从上面的示例中应该可以看出这一点。
使用 SSL。
此外,返回给客户端的任何信息都可能会缓存在浏览器中,因此发回 <iframe src="/page.php?password=foobar ...>
这也是非常糟糕的安全实践。使用 session 进行本地身份验证,使用无密码身份验证方案(例如 OAuth 进行远程身份验证)。
关于javascript - 带有 href 的 POST 请求,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26245937/