使用PHP或HTML更改HTTP请求授权标头

用户名

快速的问题是:有ANE办法改变HTTP授权标头与HTML / PHP / JavaScript的?

目标

我想提供用于用户登录以及提供整个网站保护的身份验证服务。我希望限制用户查看除登录页面以外的任何文件,除非获得授权。对于php,我当然可以在开始时检查例如会话令牌的可用性,并在缺少时进行重定向,但是对于jpg图像,我不能直接进行检查。我想到创建htaccess文件,该文件将验证用户是否已登录。

解决方案

1。

使用Apache我创建了.htaccess文件,该文件将进行验证(如果设置了HTTP授权)。如果不是,它将任何请求重定向到登录页面。使用该解决方案,除了登录页面外,无法打开任何文件(无论是php脚本还是例如jpg图像):

RewriteCond %{HTTP:Authorization} ^$
RewriteCond %{REQUEST_URI} !^/login.php
RewriteRule .* /login.php [L,R]

2。

登录页面应显示表单,并且当登录名和密码正确时,使用适当的令牌设置http request auth标头。

不幸的是,我找不到手动创建http请求身份验证标头的方法。我发现的唯一方法是使用基本身份验证:

$auth = new Auth();
if (!empty($_SERVER['PHP_AUTH_USER']) && !empty($_SESSION)) {
    $auth->logout();
}
if (!empty($_SERVER['PHP_AUTH_USER']) && empty($_SESSION)) {
    $login = $_SERVER['PHP_AUTH_USER'];
    $haslo = (!empty($_SERVER['PHP_AUTH_PW']) ? Auth::hashPassword($_SERVER['PHP_AUTH_PW']) : null);
    $auth->login($login, $haslo);
}
$auth->getLoginForm();

其中getLoginForm()显示基本身份验证标准表单

public function getLoginForm()
{
    header(self::HEADER_ERROR_ASK_CLIENT_DATA);
    header(self::HEADER_RESPONSE_401);
    exit;
}

此解决方案有效,但是http request auth标头始终保持原始登录数据,这是我想要避免的。我想在其中注入“ Bearer +令牌”字符串,这将有助于确保整个系统的安全。

我尝试过的

  1. 我可以使用外部前端轻松做到这一点。例如,使用Windows桌面应用程序,我可以发送一个带有基本auth标头的请求,然后发送一个带有承载头的请求。

  2. 我可以使用JQuery和AJAX进行相同的操作-我可以使用具有基本身份验证的url来检索令牌,然后将具有自定义标头的令牌用于下一个请求。

  3. 我还可以使用PHP CURL发出不同的请求。

但是我找不到一种方法来强制常规浏览器使用Basic auth标头登录,并在成功后为下一个请求保留新的自定义载体标头。

卡龙

没有使用户代理(浏览器)Authorization: Bearer自行提供标头的标准机制

你可以做什么:

  • 确保您的所有请求都通过XHR(Ajax)完成,然后将标头发送到那里。但这将不允许“常规”文件加载(新页面,图像,脚本,CSS ...)。

  • 大多数人会做什么:发送带有您的身份验证令牌的cookie,然后检查该cookie。浏览器将自动发送cookie。

顺便说一句,请注意,您.htaccess仅检查是否存在Authorization标头,而不是标头的值,因此它毫无用处。您想通过脚本来引导所有读取,该脚本将在交付文件之前实际验证标头或cookie。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

在HTTP请求中使用JWT发送授权标头

来自分类Dev

在python中使用HTTP授权标头

来自分类Dev

如何使用授权标头PHP

来自分类Dev

linkedin中Http请求中的授权标头

来自分类Dev

在 componentDidMount 中带有 HTTP 授权标头的 API 请求

来自分类Dev

PHP POST请求中缺少授权标头

来自分类Dev

使用PHP的POST CURL请求获取错误``未传递授权标头''-Envato API

来自分类Dev

jQuery - 无法使用授权标头执行 ajax 请求

来自分类Dev

用于PHP中Oauth HTTP授权标头的RegEx

来自分类Dev

OAuth 是否总是使用 HTTP 授权标头?

来自分类Dev

如何从请求中删除授权标头

来自分类Dev

AngularJS动态$ http授权标头

来自分类Dev

Scala 授权标头 - Akka HTTP IllegalArgumentException

来自分类Dev

PHP未看到授权标头

来自分类Dev

如何编辑源自超链接(<a href>标记)的HTTP GET请求的授权标头

来自分类Dev

Apache 服务器不允许 http 请求中的授权标头

来自分类Dev

使用JWT缺少授权标头

来自分类Dev

使用MvcHandler为每个请求添加带有访问令牌的授权标头

来自分类Dev

了解JWT和HTTP授权标头吗?(客户端:Angular,服务器:php)

来自分类Dev

发出jQuery Ajax请求时,授权标头为null

来自分类Dev

未在AJAX请求中发送授权标头

来自分类Dev

Bing API请求的Ajax授权标头是什么?

来自分类Dev

DART HttpRequest不为CORS OPTIONS请求提供授权标头

来自分类Dev

尽管具有授权标头,Axios请求仍返回401

来自分类Dev

AFNetworking 2:请求中不包含授权标头

来自分类Dev

发出jQuery Ajax请求时,授权标头为null

来自分类Dev

HTTP 授权标头未在 ionic 2 中使用 codeigniter api 发送

来自分类Dev

使用授权标头信号器取消对访问的授权

来自分类Dev

使用授权标头时,CORS标头错误

Related 相关文章

  1. 1

    在HTTP请求中使用JWT发送授权标头

  2. 2

    在python中使用HTTP授权标头

  3. 3

    如何使用授权标头PHP

  4. 4

    linkedin中Http请求中的授权标头

  5. 5

    在 componentDidMount 中带有 HTTP 授权标头的 API 请求

  6. 6

    PHP POST请求中缺少授权标头

  7. 7

    使用PHP的POST CURL请求获取错误``未传递授权标头''-Envato API

  8. 8

    jQuery - 无法使用授权标头执行 ajax 请求

  9. 9

    用于PHP中Oauth HTTP授权标头的RegEx

  10. 10

    OAuth 是否总是使用 HTTP 授权标头?

  11. 11

    如何从请求中删除授权标头

  12. 12

    AngularJS动态$ http授权标头

  13. 13

    Scala 授权标头 - Akka HTTP IllegalArgumentException

  14. 14

    PHP未看到授权标头

  15. 15

    如何编辑源自超链接(<a href>标记)的HTTP GET请求的授权标头

  16. 16

    Apache 服务器不允许 http 请求中的授权标头

  17. 17

    使用JWT缺少授权标头

  18. 18

    使用MvcHandler为每个请求添加带有访问令牌的授权标头

  19. 19

    了解JWT和HTTP授权标头吗?(客户端:Angular,服务器:php)

  20. 20

    发出jQuery Ajax请求时,授权标头为null

  21. 21

    未在AJAX请求中发送授权标头

  22. 22

    Bing API请求的Ajax授权标头是什么?

  23. 23

    DART HttpRequest不为CORS OPTIONS请求提供授权标头

  24. 24

    尽管具有授权标头,Axios请求仍返回401

  25. 25

    AFNetworking 2:请求中不包含授权标头

  26. 26

    发出jQuery Ajax请求时,授权标头为null

  27. 27

    HTTP 授权标头未在 ionic 2 中使用 codeigniter api 发送

  28. 28

    使用授权标头信号器取消对访问的授权

  29. 29

    使用授权标头时,CORS标头错误

热门标签

归档