javascript - 带有 href 的 POST 请求

标签 javascript php html

我正在尝试使用 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/

相关文章:

Javascript:为长查询准备的语句

javascript - 可以将 Google Maps Javascripts 放入 Assets 管道 (Rails) 中吗?

php - Doctrine/Swagger-php 语法错误 : [Syntax Error] Expected PlainValue, 在位置得到 ')'

html - 如何让 Safari 自动填充信用卡到期日期月份/年份选择标签?

html - Css 模糊玻璃效果滤镜不起作用

javascript - Webgl 跨源图像不起作用

javascript - 为额外元素添加 JS/jQuery 点击功能

Javascript POST 请求不起作用

php - 将注释的多行(自由空间)正则表达式传递给 preg_match

php - MySQL 插入查询进度变慢