小编use*_*130的帖子

什么是"升级 - 不安全请求"HTTP标头?

我向HTTP(非HTTPS)网站发出了POST请求,检查了Chrome开发者工具中的请求,发现它在将其发送到服务器之前添加了自己的标头:

Upgrade-Insecure-Requests: 1
Run Code Online (Sandbox Code Playgroud)

在搜索之后Upgrade-Insecure-Requests,我只能找到有关发送标头的服务器的信息:

Content-Security-Policy: upgrade-insecure-requests
Run Code Online (Sandbox Code Playgroud)

这似乎是相关的,但仍然非常不同,因为在我的情况下,CLIENT在请求中发送标头,而我发现的所有信息都与SERVER在响应中发送相关标头有关.


那么为什么Chrome(44.0.2403.130米)会添加Upgrade-Insecure-Requests我的请求以及它的作用是什么?


更新2016-08-24:

此标题已被添加为W3C候选推荐标准,现已正式认可.

对于那些刚刚遇到这个问题并且感到困惑的人来说,Simon East 的出色答案很好地解释了这一点.

Upgrade-Insecure-Requests: 1头曾经是HTTPS: 1 在之前的W3C工作草案,并改名悄然由镀铬前的变化成为正式受理.

(在此过渡期间,当此标题上没有官方文档且Chrome是唯一发送此标题的浏览器时,会询问此问题.)

google-chrome http http-headers upgrade-insecure-requests

214
推荐指数
2
解决办法
12万
查看次数

HTML5:如何在任何文本输入按ENTER键后提交表单?

标题不言自明......我有几种形式,其中一种只是一个文本输入形式,另一种是由两个文本输入组成.我不希望其中任何一个提交按钮,我希望每当用户在任何文本输入处按下ENTER按钮时提交每个表单:

  1. 每次用户按下ENTER按钮时,由一个输入组成的表单提交 - 完美!
  2. 由两个文本输入组成的第二个表单不会以这种方式运行,当用户在任何两个输入处按下ENTER按钮时,它不会提交.

是否有办法使具有多个文本输入的表单这种方式运行并避免在其中设置提交按钮

html forms html5 form-submit web

35
推荐指数
3
解决办法
6万
查看次数

什么是SSL心跳?

随着所有关于心脏病的喋喋不休的讨论,很难找到有关OpenSSL被利用的心跳扩展到底是什么的信息.

另外,是否有可能为Apache w/mod_ssl禁用它而无需-DOPENSSL_NO_HEARTBEATS按照建议@ http://heartbleed.com/重新编译标志?

apache ssl openssl heartbleed-bug

12
推荐指数
1
解决办法
1万
查看次数

在没有WWW-Authenticate的情况下返回AJAX响应的HTTP 401状态

如果您希望传达用户未登录,即使登录机制是基于表单而不是基于HTTP(Basic,Digest等),也可以为AJAX调用的响应返回HTTP 401状态?

这里的答案表明应该使用401:https: //stackoverflow.com/a/6937030/2891365

这篇文章展示了一个使用401进行AJAX响应的人的实际例子:http://www.bennadel.com/blog/2228-some-thoughts-on-handling-401-unauthorized-errors-with-jquery.htm

但是,HTTP/1.1的RFC 2616明确指出需要特殊的头,这意味着它只能用于HTTP身份验证.

10.4.2 401未经授权

该请求需要用户身份验证.响应必须包含一个WWW-Authenticate标题字段(第14.47节),其中包含适用于所请求资源的质询.

我想我可能会发送一个虚假的标题WWW-Authenticate: WebForm,但仍然符合W3C规范,但感觉它违反了WWW-Authenticate标题的精神.

最后,我似乎无法找到明确说明是否允许HTTP 401响应的权威来源.我错过了这方面的权威来源吗?

authentication ajax http www-authenticate http-response-codes

12
推荐指数
1
解决办法
2176
查看次数

CVE-2014-7169如何运作?测试代码的细分

有一个bash版本已被修补shellshock

$ bash --version
GNU bash, version 3.2.52(1)-release (x86_64-apple-darwin12)
Copyright (C) 2007 Free Software Foundation, Inc.

$ env x='() { :;}; echo vulnerable' bash -c "echo this is a test"
bash: warning: x: ignoring function definition attempt
bash: error importing function definition for `x'
this is a test
Run Code Online (Sandbox Code Playgroud)

另一个类似的漏洞利用仍然有效,并已被分配到CVE-2014-7169

$ env X='() { (a)=>\' bash -c "echo date"; cat echo
bash: X: line 1: syntax error near unexpected token `='
bash: X: line 1: `'
bash: error …
Run Code Online (Sandbox Code Playgroud)

bash exploit shellshock-bash-bug

12
推荐指数
1
解决办法
1428
查看次数

Django:从缓存本地过滤查询集

如果我prefetch_related('toppings')对查询集执行 a 操作,并且稍后想filter(spicy=True)通过相关表中的字段进行操作,Django 会忽略缓存的信息并执行数据库查询。我发现这已记录在案(在“注释”框下),并且在执行select_related()另一个缓存时似乎会发生所有形式的缓存(已评估的查询集等) 。filter()

然而,是否有某种超级秘密的隐藏省时快捷方式可以在本地进行过滤(使用缓存而不是访问数据库),而无需编写Python代码来循环查询集(使用列表/字典理解等)?也许像一个filter_locally(spicy=True)

编辑:

列表/理解对我来说效果不佳的原因之一是因为列表/字典没有查询集方法。就我而言,第一级 M2M 字段toppings并不是我的最终目标,我需要检查第二个相关的 M2M 字段(我也已经预取了该字段)。虽然使用列表理解也可以做到这一点,但使用以下内容要简单得多,filter_locally(spicy=True, origin__country='Spain')因为:

  1. 它允许以最小的努力访问多个级别的相关领域
  2. 它允许链接其他查询集方法
  3. 它更容易阅读,因为它与熟悉的一致filter()
  4. 使用无需预取的方式修改现有代码会更容易,filter()无需进行太多更改即可添加此优化。

但从回复来看,Django没有这样的支持:(

django django-models

7
推荐指数
1
解决办法
5053
查看次数

Django:我应该在发布到模型之前将知晓的日期时间实例转换为UTC吗?

知道tzinfo = "America/Los_Angeles"我想要保存到模型的日期时间实例(在哪里).

在保存之前我应该​​以某种方式将其转换为UTC吗?或者我可以保存原样,因为它知道自己的时区吗?我是否需要稍后将其转换为用户的时区activate(),或者Django会为我做这个,因为实例知道吗?

我最好奇的是这些约定是什么.提前致谢.

python django datetime django-models django-timezone

5
推荐指数
1
解决办法
726
查看次数

级联删除类似ON DELETE CASCADE在MySQL中执行一次操作

是否有某种神奇的SQL语句删除行及其所有依赖项(由外键约束链接)而不更改表以ON DELETE CASCADE手动添加或删除每个相关行?

我正在幻想这样的东西,DELETE FROM `table_a` WHERE `id` = 1 ON DELETE CASCADE;但我似乎无法在doc @ http://dev.mysql.com/doc/refman/5.5/en/delete.html找到任何有效的东西.

  • 我不希望ALTER表只更改一次操作的约束,然后使用另一个操作将其还原ALTER
  • 我不想为DELETE FROM `table_b` WHERE `a_id` = 1;包含FK的每个表执行类似的操作table_a

使用MySQL 5.5和InnoDB

mysql sql foreign-keys

4
推荐指数
1
解决办法
1856
查看次数

如何使用下划线_为parseInt()创建部分函数

使用下划线,我想创建一个部分函数,parseInt以便使用时基数总是10 map.

我期望以下工作,但它没有:

var parseInt10 = _.partial(parseInt, _, 10); 
Run Code Online (Sandbox Code Playgroud)

文档似乎说,这是可以使用_作为占位符跳过参数在后面的规定_.partial:

_.partial(function,*arguments)

通过填充任意数量的参数来部分应用函数,而不更改其动态此值.近亲的近亲.您可以在参数列表中传递_以指定不应预先填充的参数,但在呼叫时保持打开状态.

测试

_.map([_, '_', undefined, null], function(x) { return _.partial(function(){ return arguments }, x, 10)('123'); })
Run Code Online (Sandbox Code Playgroud)

使用_.partial(function(){ return arguments }, x, 10)('123')和更换x_,"_",undefined,null,我发现所有这些值被原样传递直接作为预期.我的印象是传球_意味着不会直接使用.

注意

我完全清楚我能做到这样的事情:

var parseInt10 = function(n) { return parseInt(n, 10); };
Run Code Online (Sandbox Code Playgroud)

然而,下划线的文档似乎暗示它可以使用的事实让_.partial我想知道我做错了什么.

那么,我是否解释了下划线文档错误,或者没有处理跳过参数的特殊值?

javascript underscore.js

3
推荐指数
1
解决办法
1500
查看次数

从 Django 模板获取管理员电子邮件

有没有办法从任意模板访问模块的ADMINS变量,settings而无需在渲染之前手动将其添加到上下文中,类似于如何request在任何模板中使用RequestContextif django.core.context_processors.requestis in TEMPLATE_CONTEXT_PROCESSORS

python django django-templates django-views

1
推荐指数
1
解决办法
804
查看次数