首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何在php中获取服务器端HTTPS请求的用户名和密码

如何在php中获取服务器端HTTPS请求的用户名和密码
EN

Stack Overflow用户
提问于 2012-06-26 14:18:39
回答 3查看 1.6K关注 0票数 0

我正在为登录脚本编写web服务。我必须把它保存在HTTPS服务器上。一般来说,我们在服务器端得到的用户名和密码是

代码语言:javascript
运行
复制
if(isset($_REQUEST['login'])){
    $user=mysql_escape_string($_REQUEST['username']);
    $password=hash('sha512',$_REQUEST['password']);
} 

但这对于HTTP连接来说是很好的。

我从来没有使用过HTTPS连接用于web服务,所以我想知道有没有其他方法可以通过HTTPS连接传递用户名和密码?那么如何从请求中检索数据。

我的客户希望在头信息中发送这些数据

代码语言:javascript
运行
复制
Method: POST
Content-Type: application/x-www-form-urlencoded
Content: username=mynames&password=abcabc

从这里我需要检索数据。我对此一无所知。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2012-06-26 14:22:31

HTTPS对PHP代码实际上是透明的。它完全由浏览器和服务器处理。您可以像访问$_REQUEST请求一样访问HTTP变量。

编辑(略微修改的问题):

如果您的客户希望您有一个登录表单来提交用户名和密码(如您对问题所做的更改所示),您只需使表单输入与通常在HTTP连接中相同。将它们分别命名为"username“和"password",然后从要将表单发布到的页面上的$_POST中提取它们的数据。将服务器设置为在HTTPS上响应将使其透明地处理其他所有事情,正如我前面提到的。

票数 2
EN

Stack Overflow用户

发布于 2012-06-26 14:20:24

您可以使用HTTP Auth Basic对请求进行身份验证。

票数 1
EN

Stack Overflow用户

发布于 2012-06-26 14:41:40

正如Piotr提到的那样,不要使用HTTP身份验证。

正如其他人所说:只需将vhost设置为在https上运行,就可以运行了。您可以添加类似以下内容的内容来验证连接是否安全:

代码语言:javascript
运行
复制
<?php
if (isset($_SERVER['HTTPS']) && $_SERVER['HTTPS'] && isset($_POST) && isset($_POST['login'])) {
    // Your username and password verification here.
}

不过,请使用$_POST。$_REQUEST是一种表达“我真的不知道我在这里做什么……”的令人讨厌的方式。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/11201707

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档