我正在为登录脚本编写Web服务。我必须保留在HTTPS服务器上。一般来说,我们得到的用户名和&服务器端的密码为
if(isset($_REQUEST['login'])){
$user=mysql_escape_string($_REQUEST['username']);
$password=hash('sha512',$_REQUEST['password']);
}
但这对于HTTP连接来说很好。
我从未使用HTTPS连接进行网络服务,所以我想知道是否还有其他方法可以传递用户名&通过HTTPS连接的密码?那么如何从该请求中检索数据。
我的客户希望在标题信息中发送这些数据,例如
Method: POST
Content-Type: application/x-www-form-urlencoded
Content: username=mynames&password=abcabc
从这里我需要检索data.i不知道这个。
答案 0 :(得分:2)
HTTPS对PHP代码实际上是透明的。它完全由浏览器和服务器处理。您可以访问与HTTP请求完全相同的$ _REQUEST变量。
修改(稍加修改的问题):
如果您的客户希望您有一个登录表单来提交用户名和密码(正如您对问题的更改所示),您只需使表单输入与HTTP连接中的表单输入相同即可。分别将它们命名为“username”和“password”,然后从您发布表单的页面上的$ _POST中提取数据。设置服务器以使用HTTPS进行响应将使其以透明方式处理其他所有内容,如前所述。
答案 1 :(得分:1)
您可以使用HTTP Auth Basic对请求进行身份验证。
答案 2 :(得分:1)
不要像Piotr提到的那样使用HTTP身份验证。
正如其他人发布的那样:只需将vhost设置为在https上运行,您就可以了。你可以添加这样的东西来验证连接是否安全:
<?php
if (isset($_SERVER['HTTPS']) && $_SERVER['HTTPS'] && isset($_POST) && isset($_POST['login'])) {
// Your username and password verification here.
}
请使用$ _POST。 $ _REQUEST是一种讨厌的说法,我不会真正知道我在这里做什么......&#34;。