天道酬勤,学无止境

http

HTTP 身份验证的类型以及如何设计安全的数据库? [关闭](Types of HTTP authentication and how to design a secure database? [closed])

问题 很难说出这里问的是什么。 这个问题是模棱两可的、含糊的、不完整的、过于宽泛或修辞的,不能以其目前的形式得到合理的回答。 如需帮助澄清此问题以便重新打开它,请访问帮助中心。 8 年前关闭。 几个月前,我开发了一个 iOS(iphone) 应用程序,该应用程序允许用户创建某些类型的事件并将它们作为 XML/JSON 文件发布到 Web 服务器。 然后通过他们的设备,他们能够查看来自不同用户等的事件。 构建整个事物的想法非常基本。 当应用程序第一次启动时,应用程序连接到一个 URL 并要求提供一个用户 ID(对于每个用户都是唯一的)。 然后每次用户想要发布一些东西时,我们使用 HTTP 基本身份验证并将用户 ID 和包含有关创建的事件的所有信息的 XML 文件作为标头发送。 我从来没有在服务器端工作过,所以我不知道整个系统有多安全。 几天前我开始研究我的应用程序,这是相同的想法,所以我首先开始在服务器端(php)上工作。 在我开始之前,我想看看我之前的项目有多安全,我很震惊没有任何安全性。 只需使用一个简单的 Web 调试器(嗅探器),我就能够看到我的应用程序连接到哪里来询问用户 ID,每个 xml 文件的格式如何发送到数据库以及服务器如何响应。 因此,如果有人只想用一百万个用户 ID 或一百万个事件来淹没数据库,那么创建一个 php 脚本来做到这一点将非常容易。 在这种情况下

2021-12-09 09:23:08    分类:技术分享    php   ios   xml   http   authentication

使用 Java 通过 HTTP 下载未知长度的文件(Download file via HTTP with unknown length with Java)

问题 我想用java下载一个HTTP查询,但是我下载的文件在下载时长度不确定。 我认为这会很标准,所以我搜索并找到了它的代码片段:http://snipplr.com/view/33805/ 但是它的 contentLength 变量有问题。 由于长度未知,我得到-1。 这会产生错误。 当我省略关于 contentLength 的整个检查时,这意味着我总是必须使用最大缓冲区。 但问题是文件还没有准备好。 因此,flush 仅部分填充,部分文件丢失。 如果您尝试下载像 http://overpass-api.de/api/interpreter?data=area%5Bname%3D%22Hoogstade%22%5D%3B%0A%28%0A++node%28area%29% 这样的链接3B%0A++%3C%3B%0A%29+%3B%0Aout+meta+qt%3B 使用该代码段,您会注意到错误,并且当您始终下载最大缓冲区以忽略错误时,您最终会得到损坏的 XML 文件。 有没有办法只下载文件的准备部分? 我想这是否可以下载大文件(最多几 GB)。 回答1 这应该有效,我对其进行了测试,并且对我有效: void downloadFromUrl(URL url, String localFilename) throws IOException { InputStream is =

2021-12-09 09:21:12    分类:技术分享    java   http   download

URIEncoding = 'UTF-8' 如何工作?(How does URIEncoding = 'UTF-8' work?)

问题 当我在 http://grepcode.com/file/repo1.maven.org/maven2/org.apache.tomcat/tomcat-catalina/7.0.0/org/apache/catalina/connector/Request 查看 tomcat 源代码时。 java#Request.parseParameters%28%29 我找不到在哪里为来自 get 方法的 queryString 设置编码,以及server.xml中的配置URIEncoding="UTF-8"在这种方法中如何工作。 回答1 URIEncoding参数正是您要寻找的。 它设置 URI 解码查询字符串时要使用的字符编码。 您可以在server.xml中将其用作Connector实体的属性。 如果过去成功使用它。 回答2 首先,让我们使用更新版本的 Tomcat。 7.0.0 已有多年历史:来自 Tomcat 7.0.34 的 Request.java 其次, parseParameters方法不设置编码:它获取其他组件设置的编码。 可能已设置内容编码的一些地方: 连接器的 URIEncoding(根据 HTTP RFC 默认为 ISO-8859-1 AS) 请求正文编码(来自 HTTP 请求的 Content-Type 标头) 另一个组件——也许通过查看参数的值来嗅探编码

2021-12-09 08:16:47    分类:技术分享    http   tomcat   encoding   catalina

Nginx、Rails 和 Oauth。 上游提前关闭连接(Nginx, Rails and Oauth. upstream prematurely closed connection)

问题 我有一个奇怪的问题,只有在我使用nginx和unicorn时才会出现在生产环境中。 当我在没有 nginx 的情况下使用独角兽时,它不会发生。 问题。 我有一个简单的 oauth 身份验证,它允许用户通过 GitHub 进行注册。 在 GitHub 的授权页面上按“允许”后,用户将被重定向到回调路由。 然后,他/她收到302 Bad Gateway错误。 Nginx 日志向我显示此错误(键被替换为“...”) 2012/12/26 18:03:08 [错误] 1467#0:*1 上游在从上游读取响应头时过早关闭连接,客户端:10.0.2.2,服务器:_,请求:“GET /auth/github/callback ?code=&state=... HTTP/1.1", 上游: "http://unix:/tmp/unicorn.tm.sock:/auth/github/callback?code=...&state=...",主机:“本地主机:3000” 这是我的 nginx 配置。 upstream unicorn { server unix:/tmp/unicorn.tm.sock fail_timeout=0; } server { listen 80 default deferred; client_max_body_size 4G; server_name _

2021-12-09 08:15:18    分类:技术分享    ruby-on-rails   http   nginx

Scrapy 爬行速度慢(60 页/分钟)(Scrapy Crawling Speed is Slow (60 pages / min))

问题 我遇到了scrapy的缓慢爬行速度(大约1页/秒)。 我正在从 aws 服务器抓取一个主要网站,所以我认为这不是网络问题。 Cpu利用率远不及100,如果我启动多个scrapy进程,爬网速度会快得多。 Scrapy好像爬了一堆页面,然后挂了几秒,然后重复。 我试过玩: CONCURRENT_REQUESTS = CONCURRENT_REQUESTS_PER_DOMAIN = 500 但这似乎并没有真正使指针超过 20。 回答1 您确定可以高速抓取目标站点吗? 许多站点实施下载阈值,并且“过一段时间”开始响应缓慢。

2021-12-09 06:09:53    分类:技术分享    python   http   scrapy   web-crawler

Bottle.py HTTP 身份验证?(Bottle.py HTTP Auth?)

问题 如何让我的 Bottle.py 应用程序(在 Paste 或 Cherrypy 中运行)进行 HTTP(基本或摘要)身份验证? - 我需要保护它,但找不到任何 HOWTO。 回答1 auth_basic有一个内置的auth_basic装饰器,可以在视图上使用: from bottle import auth_basic, request, route def check(user, pw): # Check user/pw here and return True/False @route('/') @auth_basic(check) def home(): return { 'data': request.auth } 回答2 GitHub 上有一些库,如 https://github.com/FedericoCeratto/bottle-cork,应该会有所帮助。 它可能比相关帖子中建议的 repoze 库更容易集成。

2021-12-09 04:47:05    分类:技术分享    python   http   authentication   bottle   digest

通过 HTTP 强制使用 HTTPS(Forcing HTTPS over HTTP)

问题 所以我想强制用户访问我页面的 https 版本而不是 http。 根据这篇文章,我所要做的就是: RewriteEngine On RewriteCond %{SERVER_PORT} 80 RewriteRule ^(.*)$ https://www.yourdomain.com/$1 [R,L] 但是MY站点驻留在主目录中的一个文件夹中,因此它位于www.domain.com/Folder 。 那么这个 htaccess 代码应该放在主目录还是子目录中。 因为我不想改变访问主站点的方式,只有文件夹。 回答1 这是一种不太好的解决方法,尤其是当您有权访问 httpd.conf 时。 更好的方法是创建两个虚拟主机。 一个用于标准端口 80 的东西,它只是无条件重定向到 SSL 版本,例如在伪 ish .conf 谈话中: <VirtualHost example.com:80> RedirectPermanent / https://example.com DocumentRoot /some/fake/path </VirtualHost> <VirtualHost example.com:443> normal site stuff here... </VirtualHost> 即使配置混乱禁用了 .htaccess 文件,这也具有使重定向可行的优点,并且如果 SSL

2021-12-09 04:23:10    分类:技术分享    security   .htaccess   http   https   rewrite

CentOS VirtualBox 对 http 请求的延迟为 5 秒(CentOS VirtualBox 5 second latency on http requests)

问题 我在 OSX 10.8.2 机器上的 VirtualBox 4.2.1 内运行 centos 6.3,并且遇到了我不理解的延迟问题。 基本上,对任何地方的每个 http 请求都有额外的 5000 毫秒延迟。 Ping 没有额外的延迟。 [vagrant@localhost ~]$ curl -o /dev/null https://google.com -w "" % Total % Received % Xferd Average Speed Time Time Time Current Dload Upload Total Spent Left Speed 110 220 110 220 0 0 42 0 0:00:05 0:00:05 --:--:-- 7586 [vagrant@localhost ~]$ curl -o /dev/null https://google.com -w "" % Total % Received % Xferd Average Speed Time Time Time Current Dload Upload Total Spent Left Speed 110 220 110 220 0 0 42 0 0:00:05 0:00:05 --:--:-- 7586 [vagrant@localhost ~]$ curl -o /dev

2021-12-09 03:30:44    分类:技术分享    http   centos   virtualbox   latency   vagrant

在“Location:”标头中使用与协议相关的 URI(Using protocol-relative URIs within "Location:" headers)

问题 我在 PHP 手册中注意到,其中说明了以下内容: HTTP/1.1 需要一个绝对 URI 作为 » Location 的参数:包括方案、主机名和绝对路径,但一些客户端接受相对 URI。 为了方便用户优先使用 HTTPS 无处不在的连接,我正在考虑更改我的 PHP 脚本中的标头: header("Location: http://www.example.com/"); to header("Location: //www.example.com/"); 我已经测试了上面的代码可以在我的 firefox 浏览器上工作,但我不确定这是否是一个可取的做法。 或者我是否应该从$_SERVER变量中提取协议并将其放入。 回答1 HTTPbis 更新允许使用相对 URI。 虽然没有特别提及,但这包括与协议相关的 URL。 (它首先是对记录已建立浏览器行为的 HTTP/1.1 规范的更新。) 回答2 根据 HTTP 协议的建议,您应该使用绝对 URI 。 您仍然可以通过使用$_SERVER['HTTPS']变量来检测协议,条件如下: $protocol = "http" . (!empty($_SERVER['HTTPS']) ? "s" : "");

2021-12-09 02:36:27    分类:技术分享    php   http   http-headers   protocol-relative

在 php 类函数中循环打印进度(print progress as looping through php class functions)

问题 我现在正在用 aOuth 和其他一些服务器做一些事情,虽然我创建的类可以工作,但它并没有保持 HTML 页面发布它的进度。 例如说我有以下课程: class Something { function a() { sleep(2); echo "a()"; return TRUE; } function b() { sleep(2); echo "b()"; return TRUE; } function c() { sleep(2); echo "c()"; return TRUE; } } 然后我循环遍历 HTML 中的类: $something = new Something(); if($something->a()) { if($something->b()) { if($something->c()) { echo "everything completed!!"; } } } 页面将呈现: a()b()c()everything completed!! 6 秒后。 我希望它随着它的进行而更新(即在完成处理某事时打印a() >a(),在完成处理某事时打印b() >b() 等...) 回答1 在 Chrome 21、Firefox 15 和 IE8 中为我工作: <?php header( 'Content-Type: text/html; charset=utf-8

2021-12-09 02:35:26    分类:技术分享    php   apache   http