使用基于查询string参数的HTTP身份validation保护URL

使用基于查询string参数的HTTP身份validation保护URL,第1张

概述使用基于查询string参数的HTTP身份validation保护URL

我有一个像这样的链接的网站:

http://www.example.com/index.PHP?ID=1

http://www.example.com/index.PHP?ID=3

等等

将URL中的4位数字replace为文本+ 4位数字

如何通过.htaccess在URL中允许三个可选参数?

从url代码的任何位置移除任何一个或多个空参数时出错

漂亮的url在yii2中不起作用

.htaccess在根目录下的mod_rewrite,但需要它跳过所有其他目录

我想有一个特定的ID,例如200的htaccess密码保护。

我怎样才能做到这一点?

我如何使mod_rewrite抑制处理更多的规则?

用PHP模拟文件结构

国防部重写假的子域名?

在.htaccess中需要一个特定的URL RewriteRule

在父目录中由htaccess引起的“RewriteEngine不允许在这里”

这不是直接的,但这是一个可以在.htaccess完成的方法:

RewriteEngine On # set URI to /index.PHP/200 if @R_502_5962@ string is ID=200 RewriteCond %{@R_502_5962@_STRING} (?:^|&)ID=(200|1)(?:&|$) [NC] RewriteRule ^(index.PHP)/?$ $1/%1 [NC] # set SECURED var to 1 if URI is /index.PHP/200 SetEnvIfNoCase Request_URI "^/index.PHP/(200|1)" SECURED # enforce auth if SECURED=1 AuthType Basic Authname "Login required" AuthUserfile /full/path/to/passwords Require valID-user Order allow,deny Allow from all Deny from env=SECURED Satisfy any

你不能使用htaccess来做到这一点。 有一种方法需要基于环境变量的授权,但是你不能使用SetEnvIf来匹配查询字符串,并且mod_rewrite的RewriteCond发生在auth模块之后,所以即使你匹配它,auth也已经被绕过了。

你需要在你的index.PHP实现这个。 在PHP 中有一些插件可以为你做一些这样的事情 。 所以像这样:

if($_GET['ID'] == "200") { if (!isset($_SERVER['PHP_AUTH_USER'])) { header('WWW-Authenticate: Basic realm="My Realm"'); header('http/1.0 401 Unauthorized'); echo 'Text to send if user hits Cancel button'; exit; } else { // check username/password here } }

总结

以上是内存溢出为你收集整理的使用基于查询string参数的HTTP身份validation保护URL全部内容,希望文章能够帮你解决使用基于查询string参数的HTTP身份validation保护URL所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/langs/1284657.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-06-09
下一篇2022-06-09

发表评论

登录后才能评论

评论列表(0条)

    保存