浏览器Basic Auth方式认证的phpMyAdmin自动登录_PHP教程
本文章来给大家介绍浏览器Basic Auth方式认证的phpMyAdmin自动登录,有需要了解的同学可进入参考。
一、需求
自动登录 phpMyAdmin。最终能够解决自动登录所有使用 Basic Auth 方式认证的网页。
.
二、phpMyAdmin 的四种认证登陆方式
1.config 配置文件。直接将允许登录的用户名和密码写在 config.inc.php 配置文件中。
2.cookie。最常用的方式,通过填写首页表单进行登录。
3.http。HTTP Basic Authentication 方式,使用浏览器的弹出式对话框进行登录。与 cookie 方式的区别主要在于用户体验。
4.signon。单点登录,适用于系统集成。用户登录了某系统后,不必再输用户名密码即可以一键登录 phpMyAdmin。
参考:http://wiki.phpmyadmin.net/pma/Auth_types
按道理 signon 方式应该是满足需求的首选方案,只不过项目开发总是有妥协和迁就,要尽量少干预现有系统的运行。另外,在实现 signon 方式登录的同时,还需要保留原有的用户输用户名密码的登录方式,即备用登录方案。这就将问题复杂化了。
三、什么是 Basic Auth
现有系统使用了 Basic Auth 方式,于是我研究了怎样能够在这种情况下也一键登录。
在访问一个需要 HTTP Basic Authentication 的 URL 时,如果你没有提供用户名和密码,服务器就会返回 401,这时浏览器会提示你输入用户名和密码。例子如下:
代码如下 | 复制代码 |
if (!isset($_SERVER['PHP_AUTH_USER'])) { header('WWW-Authenticate: Basic realm="My Realm"'); header('HTTP/1.1 401 Unauthorized'); } else { echo " Hello {$_SERVER['PHP_AUTH_USER']}. ";echo " You entered {$_SERVER['PHP_AUTH_PW']} as your password. ";} ?> |
保存为login.php,浏览 http://localhost/login.php 查看效果。
浏览器Basic Auth:IE9和Chrome的弹出式认证对话框
在浏览器弹出的窗口中输入用户名密码,如果使用 Chrome 开发者工具(或者 Firebug)查看,会发现其实它只是多发送了一个类似下面的请求头:
Authorization: Basic bXlfdXNlcm5hbWU6bXlfcGFzc3dvcmQ=
四、Basic Auth 认证的自动登录解决方案
要想通过认证,原则上有 2 种方法
•一是在请求头中添加 Authorization(可用 Javascript 来实现):
Authorization: “Basic 用户名和密码的base64加密字符串”
•二是在 url 中添加用户名和密码(IE 不支持):
http://username:password@domain.com/login.php
用 js 添加请求头可以使用 XMLHttpRequest,实现代码如下:
代码如下 | 复制代码 |
<script><br /> function login() {<br /> var username = document.getElementById("username").value;<br /> var password = document.getElementById("password").value;<br /> <br /> xhr = new XMLHttpRequest();<br /> xhr.open("POST", "http://localhost/login.php", false, username, password);<br /> xhr.send(null);<br /> <br /> return xhr.status == 200;<br /> }<br /> </script> |
Basic Auth 认证的自动登录解决方案,总结下——
1、用户名密码直接写在 URL 里。
缺点:不够安全,且 IE 不支持。
2、写一个登陆表单,php 将用户名密码填到表单中,然后页面 onload 时 js 生成 Authorization 请求头提交
缺点:本系统和 phpMyAdmin 必须在同一个域。例如本系统在 admin.domain.com,而 phpMyAdmin 在 phpmyadmin.domain.com 这种情况 js 是无法跨域提交的。
3、本系统将用户名密码 post 到 phpMyAdmin 所在域的一个表单,那个表单再拿来用 js 登陆。
缺点:需要到 phpMyAdmin 所在域新增一个页面实现跨域。

热AI工具

Undresser.AI Undress
人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover
用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool
免费脱衣服图片

Clothoff.io
AI脱衣机

Video Face Swap
使用我们完全免费的人工智能换脸工具轻松在任何视频中换脸!

热门文章

热工具

记事本++7.3.1
好用且免费的代码编辑器

SublimeText3汉化版
中文版,非常好用

禅工作室 13.0.1
功能强大的PHP集成开发环境

Dreamweaver CS6
视觉化网页开发工具

SublimeText3 Mac版
神级代码编辑软件(SublimeText3)

有四种方法可以调整 WordPress 文章列表:使用主题选项、使用插件(如 Post Types Order、WP Post List、Boxy Stuff)、使用代码(在 functions.php 文件中添加设置)或直接修改 WordPress 数据库。

注册欧易账户的步骤如下:1.准备有效邮箱或手机号和稳定网络。2.访问欧易官网。3.进入注册页面。4.选择邮箱或手机号注册,填写信息。5.获取并填写验证码。6.同意用户协议。7.完成注册并登录,进行KYC和设置安全措施。

WordPress 编辑日期可以通过三种方法取消:1. 安装 Enable Post Date Disable 插件;2. 在 functions.php 文件中添加代码;3. 手动编辑 wp_posts 表中的 post_modified 列。

安全下载币安APP需通过官方渠道:1. 访问币安官网,2. 找到并点击APP下载入口,3. 选择扫描二维码、应用商店或直接下载APK文件的方式下载,确保链接和开发者信息真实,开启双重验证保护账户安全。

关于JavaScript无法获取用户电脑硬件信息的原因探讨在日常编程中,许多开发者会好奇为什么JavaScript无法直接获�...

欧易交易所app支持苹果手机下载,访问官网,点击“苹果手机”选项,在App Store中获取并安装,注册或登录后即可进行加密货币交易。

关于JWT和Session的困惑与解答许多初学者在学习JWT和Session时,常常会对其本质和适用场景感到困惑。本文将围绕J...

USDT转账地址错误后,首先确认转账已发生,然后根据错误类型采取措施。1.确认转账:查看交易记录,获取并在区块链浏览器上查询交易哈希值。2.采取措施:若地址不存在,等待资金退回或联系客服;若为无效地址,联系客服并寻求专业帮助;若转给了他人,尝试联系收款方或寻求法律帮助。
