小编djs*_*ith的帖子

JSON Web服务是否容易受到CSRF攻击?

我正在构建一个专门为其请求和响应内容使用JSON的Web服务(即,没有表单编码的有效负载).

如果以下情况属实,Web服务是否容易受到CSRF攻击?

  1. POST例如,没有顶级JSON对象的任何请求{"foo":"bar"}将被拒绝400.例如,POST具有该内容的请求42将因此被拒绝.

  2. POST具有除内容类型之外的任何请求application/json将被拒绝400.例如,POST具有内容类型的请求application/x-www-form-urlencoded将因此被拒绝.

  3. 所有GET请求都是安全的,因此不会修改任何服务器端数据.

  4. 客户端通过会话cookie进行身份验证,Web服务在通过带有JSON数据的POST提供正确的用户名/密码对后为其提供,例如{"username":"user@example.com", "password":"my password"}.

补充问题:是PUTDELETE要求日益容易受到CSRF?我问,因为似乎大多数(所有?)浏览器都不允许HTML表单中的这些方法.

编辑:添加了第4项.

编辑:到目前为止,有很多好的评论和答案,但没有人提供过这种Web服务易受攻击的特定CSRF攻击.

security http csrf

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

Go中的"vendoring"是什么意思?

在了解Go的依赖管理时,我经常听到用作动词的术语"供应商".示例:"应用程序供应商的依赖项......"

在这种情况下供应依赖是什么意思?


例子:

"使用您的应用程序销售的依赖关系"

资料来源:https://devcenter.heroku.com/articles/getting-started-with-go#declare-app-dependencies

"godep将编写出售的代码"

资料来源:https://github.com/tools/godep#go-15-vendor-experiment


后续问题:

terminology go

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

如何在运行时回退到Django中的多种语言?

我正在构建一个Django应用程序,它使用Django的翻译功能来提供多种语言的本地化.但我也在使用Django的翻译功能,根据当前登录用户的设置将某些术语翻译成不同的行业.

例如,对于在学习评估行业工作的英语用户,我想要以下行为:

对于页面的给定请求:

  1. 查找用户的自然语言(例如,德语)
  2. 查看用户的行业(例如,学习评估)
  3. 激活德语/学习评估语言(例如,translation.activate("learning-assessment-de"))

"learning-assessment-de".po文件只会翻译项目中所有字符串的子集,因为它只能翻译某些行业特定的术语.

这是个问题:

当一个字符串丢失时,我希望Django回退到德语(在上面的步骤#1中确定)而不是英语(我在settings.py中的默认语言).

我的默认英语/德语.po文件将假定某个行业.

这可能吗?

django translation

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

使用TastyPie将ForeignKey字段更新为null

是否可以使用TastyPie将ForeignKey字段更新为None

相关问题:在PUT期间,tastypie不会删除foreignkey引用

是)我有的:

class SomeObject(models.Model):
    some_field = models.ForeignKey(SomeOtherObject, null=True)
Run Code Online (Sandbox Code Playgroud)

(当然还有相应的TastyPie资源类可以更新其他字段)

我想要的是:

要更新some_fieldNone使用TastyPie.

我尝试过(在JavaScript中):

$.put('/my/api/model/someobject/42/', { some_field: null });
$.put('/my/api/model/someobject/42/', { some_field: '/my/api/model/someotherobject/null/' });
$.put('/my/api/model/someobject/42/', { some_field: '' });
$.put('/my/api/model/someobject/42/', { some_field: 0 });
$.put('/my/api/model/someobject/42/', { some_field: false });
Run Code Online (Sandbox Code Playgroud)

等等.这些都导致404或400.一些导致204,但数据库未更新.

通过阅读代码full_dehydrate(),目前似乎不可能这样做.

我查看了github上最近的代码,我不相信这是可能的.

python django rest tastypie

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

为什么AngularJS在我的路由中复制查询字符串?

我在我的AngularJS应用程序中使用基于哈希的导航/.

如果用户导航到我的应用程序,请执行以下操作:

http://example.com/?foo

页面加载后的一刻,某些东西(可能是Angular)导致地址栏看起来与我预期的不同.

我看到了什么:

http://example.com/?foo#/?foo

我期望看到的内容:

http://example.com/?foo#/

为什么会发生这种情况,我可以将其关闭吗?

javascript web angularjs angularjs-routing

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

在Django模板中生成相对于另一个日期的日期

我在模板上下文中有一个日期,我想在渲染输出中显示该日期加上7天.

这样的东西(不存在):

{{some_date|plus_days:7}}

如何在不编写任何Python代码的情况下在Django模板中执行此操作?

python django django-templates

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

是否可以知道我的AngularJS HTML是否引用了不存在的$ scope值?

如果我的HTML引用了我$scope不存在的名称,我如何指示Angular通知我?

输入示例:

<div ng-controller="MyController">
  {{oops}} <!-- This name does not exist in my $scope -->
</div>
Run Code Online (Sandbox Code Playgroud)

期望的输出:

<div ng-controller="MyController">
    ERROR: No such name: "oops"
</div>
Run Code Online (Sandbox Code Playgroud)

在Django中,这可以通过TEMPLATE_STRING_IF_INVALID设置来实现.

javascript angularjs

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