Articles of http

Cookie安全标志不持久

我正在试图为所有的cookie实现一个安全标志 。 我正在通过头文件来做这件事。 以下是我如何做到的: Header edit Set-Cookie (?i)^(.*)(;\s*secure)??((\s*;)?(.*)) "$1; Secure$3$4" 它成功地完成了第一次的工作。 但是,在第二次加载时,无论是刷新浏览器还是从地址栏中input, 标题都不再存在 ,Cookie不再以安全标志提供。 这是一个正常的浏览器行为? 我的设置有什么问题? 谢谢。 更新(仍然没有按预期工作) 我的问题是,重新加载页面后,HttpOnly和Secure标志不会粘住。 显然这不是正常的浏览器行为。 我已经testing了其他方面,他们的旗帜仍然在那里后重新加载。 所以这一个是我所有… 我在哪里把标题编辑Set-Cookie ? 我已经在主configuration(apache.conf)中尝试过了,我已经在包含文件和VirtualHost中尝试过了。 他们似乎都没有工作。 我也试过其他的变化/语法,如Header edit Set-Cookie ^(.*)$ $1;HttpOnly;Secure但同样的问题。 更新(FireBug)试图用FireBug运行它。 从NET检查cookie将显示Secure和HttpOnly标志已被删除在第二次加载。 起初,他们在那里。 但是从COOKIES选项卡(在Net旁边)检查,它显示了Secure和HttpOnly标志是持久的 。 为什么那样?

HAProxy,为什么replace后的HTTP头最后会有一个数字?

有人可以解释这个HAProxy前端节中的“X-Forwarded-Proto2”头文件吗? frontend main *:443 … reqirep ^(X-Forwarded-Proto:)(.*) X-Forwarded-Proto2:\2 … 我明白,HAProxy正在注入一个HTTP头。 但是为什么在新string的末尾有一个2? 我指的是标题末尾的数字“2”,而不是正则expression式的反向引用。

Apache为gzip压缩204响应返回无效的Content-Length

当apache返回带有204响应代码的gzip压缩响应,而空主体服务器返回无效头Content-Length: 20而不是Content-Length: 0 。 如果没有gzip压缩(没有Accept-Encoding标头)服务器返回有效的头Content-Length: 0 。 压缩请求和响应: 0 % curl -v http://mta.dev/api/wtf/\?id\=09102 –compressed * Hostname was NOT found in DNS cache * Trying 172.17.0.2… * Connected to mta.dev (172.17.0.2) port 80 (#0) > GET /api/wtf/?id=09102 HTTP/1.1 > User-Agent: curl/7.38.0 > Host: mta.dev > Accept: */* > Accept-Encoding: deflate, gzip > < HTTP/1.1 204 No […]

HAProxy – 保护入站TCP连接

我一直在尝试使用HAProxy实现一个负载均衡的安全代理传递。 基本上我想要做的是这样的: request —-> haproxy passthrough —–> multiple proxy servers —–> target 现在,我不希望这只是向公众开放,所以我添加HTTP基本身份validation的HTTP请求。 它工作正常,未经授权的请求被拒绝。 但是,对于HTTPS请求,我无法做到这一点,所有这些请求都没有任何安全性或限制。 请注意,使用源IP限制是不可能的,因为请求可能来自各种来源。 这是我的haproxy.cfg文件: global log /dev/log local0 log 127.0.0.1 local1 notice maxconn 4096 user haproxy group haproxy daemon defaults log global mode http option dontlognull retries 3 option redispatch maxconn 2000 contimeout 5000 clitimeout 50000 srvtimeout 50000 userlist L1 user john […]

httpd死了但pid文件存在| httpd死了,但sudsys被locking。 Centos 6

安装在VPS上的Centos 6 64bit干净安装,只是试图使用已安装的httpd安装任何types的软件包。 my case: [root@bucch ~]# service httpd status httpd is stopped [root@bucch ~]# service httpd start Starting httpd: [ OK ] [root@bucch ~]# service httpd status httpd dead but pid file exists [root@bucch ~]# rm -f /var/run/httpd/httpd.pid [root@bucch ~]# service httpd status httpd dead but subsys locked [root@bucch ~]# rm -f /var/lock/subsys/httpd [root@bucch […]

是否有一个Apache环境variables可以有多长时间的限制?

是否有类似的LimitRequestFieldsize应用长度限制的环境variables? 换句话说,一个环境variables的值是可以任意设定的,否则会被限制在一定的限度? 如果没有,是否有设置太长的环境variables的实际问题? 谢谢!

Nginx的Http安全链接模块不工作

我正在使用nginx secure_link来防止video从热链接。 如果主服务器密钥匹配远程服务器密钥。 video将能够访问/观看。 否则,如果用户访问链接直接没有MD5链接video返回403。 。 。 md5键匹配主键和远程键。 而服务器的时间是一样的。 。 。 主服务器(Apache)像这样生成链接。 http://remote_example.com/videos/myvideo.mp4?st=E_Jb6MScgyMqjUo3eNQGkA&e=1485757614 。 。 远程服务器nginxconfiguration。 “mypassword”与主服务器设置相同。 使用VestaCP面板的远程服务器。 location ^~ /videos/ { alias /home/admin/web/example.com/public_html/videos; secure_link $arg_st,$arg_e; secure_link_md5 mypassword$uri$arg_e; if ($secure_link = "") { return 403; # invalid hash or direct link } if ($secure_link = "0") { return 410; # link expired } mp4; gzip […]

CDN:根据访问者的位置,我的DNS如何提供不同的IP?

我发现这个解释 CDN是如何工作的。 但有一件事我不是很明白。 假设我在我的位置设置了多个DNS服务器,并使用名称服务器域dns1.example.com , dns2.example.com和dns3.example.com 。 这个DNS服务器能够根据访问者的位置(ping,地理数据库,浏览器语言或其他)提供服务器IP。 现在我在registry中更新这个域名www.example.org域名服务器设置。 现在, www.example.org上第一个过期的TTL请求会尝试parsing该域。 它问: 本地.hosts / DNS,如果TTL过期: 互联网提供商的DNS,如果TTL过期: 根DNS,如果TTL过期: 我的本地dns1.example.com 但是如果我理解正确,那么新的IP将被添加到所有这些名称服务器caching中,直到TTL再次到期。 那么如何根据他的位置向访问者发送其他IP呢? 在这个答案中, theand表示请求被“转发”,但我不认为这是一个CDN的工作原理,因为“转发”意味着延长传输方式,导致更长的加载时间。 还是一个CDN需要零TTL的域? UPDATE1 通过这个问题,我发现Google的文档描述了他们如何优化CDN性能。 它没有解释CDN是如何工作的,但有如下有趣的解释: 之后,无论客户何时试图获取托pipe在CDN上的内容,客户端都被redirect到被确定为具有最less等待时间的节点。 然而,该redirect基于DNS名称服务器的IP地址所对应的前缀,该DNS名称服务器的IP地址代表客户端的内容的URL,通常与客户端位于同一位置。 这意味着Google首先检查所有IP前缀的延迟,并为所有可用的前缀定义DNSparsing表(?)。 如果访问者拥有IP 198.51.100.231 ,则使用Google服务器IP,前缀为198.51.100.0 。 但是,Google的DNS如何知道访问者正在使用哪个IP? 大多数访问者通过他们的互联网提供商来parsingGoogle的域名,通过这些外部的DNS服务器来解决问题呢? 作为一个附加的例子:如果我使用不同的在线工具(托pipe在不同的国家/地区)为域名facebook.com启动一个DNSparsing,它将parsing为具有不同域名的不同IP: 31.13.92.36反向:edge-star-mini-shv-01-frt3.facebook.com 31.13.76.68反向:edge-star-mini-shv-01-sea1.facebook.com 31.13.69.228反向:edge-star-mini-shv-01-iad3.facebook.com 157.240.2.35反向:edge-star-mini-shv-01-ort2.facebook.com 之后,我认为这可能取决于访问者使用的DNS服务器的位置,但我尝试了自己的(德国电信,德国电信),谷歌(8.8.8.8)和法国(橙色)的主要一个,他们都返回了facebook.com IP 31.13.92.36 。

连接被拒绝HTTP(端口80)

所以,在Apache和Ubuntu方面,我是一个新手,但我知道基本知识(文件移动,复制,编辑等)。 我试图用PHP的权限来解决一个问题,所以我使用chmod将/tmp/和/var/tmp/权限设置为777。 然后,我修改了/etc/php/和/etc/php5/两个php.ini文件,以定制临时目录。 但是,我结束了重新启动服务器,而实际上并没有创build临时目录(oops)。 现在我仍然可以通过SFTP连接到我的服务器,但是在Chrome中尝试连接时,它给了我一个ERR_CONNECTION_REFUSED 。 我以为这是一个.php页面的问题,所以我尝试加载一个.html页面。 没有。 我尝试了多次重新启动,但无济于事。 另外,我的整个文件系统是只读的。 所以我假设我搞砸了一些configuration和作为安全措施,一切都被locking。 我已经尝试sudo su ,重新安装驱动器(被阻止,因为我不能写入一些configuration文件),和一堆其他的东西。 在执行fsck时我也遇到错误: fsck.ext4: unable to resolve UUID: xxxxxxxx 。 同样,不能通过重新安装来自动修复任何错误,因为我不能写入某个configuration文件。 我尝试通过/var/log/系统日志,但是我找不到任何错误消息。 我相信这是一个PHPconfiguration的问题,但我不知道。 我也看着我的UFW,看到它被禁用。 当试图启用它,再次,它不会让我,因为我不能写入文件系统。 所有这一切都在sudo 。 帮助将不胜感激。 谢谢! 编辑:我设法find我的bash历史作为根,但没有什么似乎太奇怪: https : //pastebin.com/yPh5rSE6 编辑2:我记得的一件事是修改/var/tmp/权限时,该文件夹有一个粘性位; 我相信权限是drwxrwxrwt 。 正在改变这个服务器突破失误? 我不能改变这个,因为我作为只读文件系统挂载。 编辑3:所以这似乎是问题是权限,这导致启动时出现错误,并locking文件系统为只读,搞乱了Web服务器。 这听起来似乎有道理? 这个问题似乎根植于两个地方fsck和mount的UUID错误。 我如何解决这个问题?

204无内容和传输编码时curl不closures:通过haproxy进行分块

Haproxy正在终止https连接并将请求转发到后端。 当资源返回204无内容和传输编码:分块curl连接不closures。 当我在后端直接调用资源时,连接已经正确closures。 有人可以解释这种行为吗? 这是特定的haproxy或curl或预期? 通过haproxy: curl -X GET https://localhost/example -v * About to connect() to localhost port 443 (#0) * Trying 127.0.0.1… * Connected to localhost (127.0.0.1) port 443 (#0) > GET /example HTTP/1.1 > User-Agent: curl/7.29.0 > Host: localhost > Accept: */* > < HTTP/1.1 204 No Content < Cache-Control: no-cache, no-store, must-revalidate […]