我有一些站点的目录受 http 基本身份验证保护,这些目录是通过 .htaccess 文件与 .htpasswd 文件配对实现的。我注意到密码以“et!”结尾 我可以通过省略“t!”或替换!与 1。
我的 .htaccess 文件的内容:
AuthType Basic
AuthName "administration"
AuthUserFile /var/www/conf/mysitename.com.pw
require valid-user
Run Code Online (Sandbox Code Playgroud)
我在 mysitename.com.pw 中有两个用户。
显然,这种行为是不想要的。知道发生了什么吗?
明确一点:我不打算编写自己的协议或自己的客户端实现。我正在寻找一个现有的协议,它是 HTTP 标准的一部分,它通常已经被普通浏览器支持。(这种东西可能不存在。)
我有一个 HTTP 应用程序,需要对中间人威胁进行一些保护。(服务器需要能够向客户端证明其响应的真实性。)加密是无关紧要的,也是不必要的。此外,考虑到预期的命中率,硬件预算非常少。
通常,我只需要一个便宜的证书并在 Web 服务器上启用 SSL,但是负载生成器同时杀死了 Apache 和 Nginx(我不希望任何其他 Web 服务器做得更好)。对于非 HTTP 服务,负载很好。我还尝试配置 HTTPS 服务器以协商空加密密码。这有点帮助,但 SSL 握手仍然太重。
响应文档上的简单 SHA-1 签名(由服务器生成),由客户端验证,很适合我。我编写了一个简单的 Python FastCGI 脚本和 HTTP 客户端来仅测试裸露的 SHA-1 操作——它增加了一些负载,但不多,甚至不接近带有空加密的 SSL 添加的负载。但实际上,我的客户端不是 Python 脚本,而是 Web 浏览器。
(再次声明:我不是在提议我自己的加密协议,Python 脚本只是测试 SHA-1 哈希本身与 SSL 协商的其余部分相比产生了多少负载。我不能使用自定义客户端实现,因为我无法为所有客户端浏览器安装它。)
那么:是否有任何现有的轻量级(与 SSL 相比)用于 HTTP 的服务器身份验证协议?
我正在使用 ngrep 来检查 http 标头,我从来没有设法从 tcpdump 中获得一些透明的东西,而且我不喜欢像wireshark这样的 GUI 应用程序。ngrep 很棒,但我似乎无法找到一种方法来 grep POST 请求的标题和它们的正文内容......请有人告诉我如何做到这一点,或者建议一些其他打印标题和 POST 内容的方法请求机构?
今天浏览我的评估日志,我发现有很多条目试图访问页面。(不存在的)。喜欢
- robots.txt(我知道这是用来做什么的)
- 申请
- favicon.ico(我知道这是用来做什么的)
- 等等
因此,显然404返回了 a但还有其他 3 位代码(?)以及 404。
ip-address - - [date & time] "GET /some/file_OR_folder HTTP/1.1" 404 312
ip-address - - [date & time] "GET /some/file_OR_folder HTTP/1.1" 404 285
ip-address - - [date & time] "GET /some/file_OR_folder HTTP/1.1" 404 286
ip-address - - [date & time] "GET /some/file_OR_folder HTTP/1.1" 404 287
ip-address - - [date & time] "GET /some/file_OR_folder HTTP/1.1" 404 288
ip-address - - [date & time] "GET /some/file_OR_folder HTTP/1.1" …Run Code Online (Sandbox Code Playgroud) 同样可以通过网络服务器或脚本发送 HTTP 标头。我在 Nginx 上使用 PHP。通过 nginx 或 PHP 发送 HTTP 标头(例如 Cache-Control)有什么不同吗?
通过网络服务器发送标头是否更快?它对早期处理 HTTP 请求有影响吗?
ftp 可以通过ftp://example.com访问, 但我见过有人使用http://ftp.example.com访问 ftp 我怎样才能实现这种功能?有没有办法通过安装一些软件来做到这一点?
我使用的是 Mac 10.7.4,我有一个 HTTP 服务在远程服务器的端口 8082 上运行,我只能通过中间服务器访问。所以我执行这些隧道命令
ssh -L 8082:remote-server:22 dalvarado@intermediate-server
ssh dalvarado@localhost -p 8082
Run Code Online (Sandbox Code Playgroud)
但是,当我打开网络浏览器(Safari 或 Chrome)并访问
http://localhost:8082/
Run Code Online (Sandbox Code Playgroud)
我收到错误
SSH-2.0-OpenSSH_5.3
Protocol mismatch.
Run Code Online (Sandbox Code Playgroud)
我已经验证远程服务器的 sshd_config 文件包含“Protocol 2”,我什至尝试将“-2”标志添加到上述 SSH 命令,但我仍然收到错误消息。
任何帮助表示赞赏, - 戴夫
每当我收到关于 的请求时mydomain.com,我都会www使用以下重写规则将其重定向到子域:
server_name mydomain.com;
rewrite ^(.*)$ $scheme://www.mydomain.com$1 permanent;
Run Code Online (Sandbox Code Playgroud)
但是如果收到一个 POST 请求,它会被重定向为 GET。
为什么?重定向此内容的正确方法是什么?
我对 IIS 和 URL Rewrite 非常熟悉,但我刚刚接到了一项让我难堪的任务。我需要检查每个请求是否存在 X-Forwarded-For HTTP 标头,并根据它的存在重定向请求。
我怎样才能检查这个标题?
我对 NTLM 了解不多......疯狂的想象力......糟糕的protolol...... grmbl grmbl :D :D :D
这个线程说它不能完成:http : //www.squid-cache.org/mail-archive/squid-users/200708/0578.html
有没有大师可以提供解决方案或解决方法?
这是所需网站的端口 80 上的 telnet 输出:
Trying 111.222.333.444...
Connected to www.extranet-example.com (111.222.333.444).
Escape character is '^]'.
GET /index.htm HTTP/1.1
host: www.extranet-example.com
HTTP/1.1 401 Unauthorized
Server: Microsoft-IIS/7.5
SPRequestGuid: 2764478a-b14a-4541-9110-27ebf4281e84
WWW-Authenticate: NTLM
X-Powered-By: ASP.NET
MicrosoftSharePointTeamServices: 14.0.0.4762
Date: Mon, 25 Nov 2013 14:25:26 GMT
Content-Length:
0
Run Code Online (Sandbox Code Playgroud)
奖励:我们使用 2 个链式代理 (squid-2.6 rhel5) 服务器
编辑:使用 NTLM 进行鱿鱼身份验证不是我们想要实现的。
编辑 2 :我们尝试访问的网站在我们公司之外,在我们的网络之外。实际上它是一个具有公共IP的公共网站。如果我从代理配置中排除这个网站,它将无法工作,因为我们的工作站没有到互联网的路由,也没有直接连接。