小编Hou*_*man的帖子

安全的RESTful API,可供Web App(角度),iOS和Android使用

我必须制定一个计划来开发一个RESTful API(Python/Flask),可以被我们未来的Web应用程序(Angularjs)和移动应用程序(iOS/Android)使用.

我已经研究了三天,并且遇到了几种情况:使用HTTPS是下面方法的一种方法,以保证它更安全.但https速度较慢,这可能意味着我们需要更快,更昂贵的服务器.

  1. 对于API的每个请求,使用Basic-Http-Auth并通过线路以普通(但https)发送用户名/密码.
  2. 使用Digest-Auth,它是密码的哈希值,跟踪将是自动的.这适用于Web应用程序,但是我无法确认iPhone和Android是否会本机支持.如果他们这样做,这可能是一个简单的解决方案!
  3. 使用自定义http标头,我会在成功验证后在http标头中发送自定义Auth字符串.但是我必须确保我为用户发出的每个请求发送此身份验证代码.这使得它与1)完全相同,不同之处在于未使用普通密码,并且授权代码可以在没有任何风险的情况下过期.同样有问题的是跟踪授权代码,该代码不再像2)中那样自动化
  4. 使用OAuth是一种选择.但它很难建立起来.如果没有更好的方法,也许这是唯一的方法?
  5. 如本篇文章所述,像Amazon S3一样保护API .简而言之,他说服务器和客户端都知道私钥,他们会用它来散列通信.这就像强盗握手,如果他知道帮派握手,你只会信任送货员.有人问道:

如何在纯HTML5应用程序中保持私钥"安全"?

你完全正确; 在纯HTML5(JS/CSS/HTML)应用程序中,没有保护密钥.您可以通过HTTPS进行所有通信,在这种情况下您不需要密钥,因为您可以使用标准API_KEY或其他友好标识符安全地识别客户端,而无需HMAC的需要或复杂性.

换句话说,首先在Web应用程序中使用该方法甚至没有意义.老实说,我不明白这应该如何在移动设备上运行.用户下载我们的应用程序,如何将私钥从iphone发送到服务器?我转移它的那一刻,它将受到损害.

我越是研究我越是优柔寡断.

我希望能问一些以前做过这个并且可以分享经验的专业人士.非常感谢

iphone android restful-authentication oauth flask

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

如何让iTerm2出现在当前屏幕上?

在下面Preferences -> 'Keys'可以打勾Show/hide iTerm2 with a system-wide hotkey.

但是,iTerm始终显示在主显示屏(显示器)上,而不是光标当前所在的位置.

例如,如果我有三个显示器,并且正在第三个屏幕上工作,则热键使iTerm出现在第一个显示器上,而不是我当前正在工作的地方.

任何建议如何解决这个问题?

更新:

这个bug在v.3.1.6中再次出现.如果知道任何变通方法,请分享.

macos iterm2 osx-yosemite

32
推荐指数
3
解决办法
6564
查看次数

如何从pfx/cer创建snk?

微软似乎已经创建了一个认证丛林,这很难理解.

  • Microsoft X.509证书(.cer)
  • 个人信息交流(.pfx)
  • 程序集签名密钥属性(.snk)

    1. 是否建议基于pfx或cer创建snk文件?(不确定它是否可能,如果它可能如何完成?)

    2. 虽然可以使用受密码保护的pfx对程序集进行签名,但它看起来并不强大,除非使用snk签名.但是snk没有密码保护.哪一个更安全?由于我是项目中唯一的开发人员,我没有多开发人员安全环境问题,但仍想知道什么是最好的方法.

非常感谢,

.net c# snk pfx x509certificate

31
推荐指数
3
解决办法
2万
查看次数

拳击与拆箱

我最近的另一个C#面试问题是,如果我知道Boxing和Unboxing是什么.我解释了堆上的值类型和Heap上的引用类型.当一个值转换为引用类型时,我们将其称为装箱,反之亦然.

然后他让我计算一下:

int i = 20;
object j = i;
j = 50;
Run Code Online (Sandbox Code Playgroud)

什么是i

我把它搞砸了,然后说了50,它实际上是20.现在我想明白为什么,但是当我玩不同的组合时,我很惊讶地看到这个:

Object a = 1; // Boxing
Object b = a; // referencing the pointer on stack to both objects on heap
a = 2; // Boxing
Run Code Online (Sandbox Code Playgroud)

我期待也能看到b == 2,但事实并非如此,为什么?是因为第二次拳击会破坏并替换a堆上的整个对象吗?

因为如果我这样做,那很好:

public class TT
{
    public int x;
}

TT t = new TT();
t.x = 1;
TT t2 = new TT();
t2.x = 2;
t = t2;
t.x = …
Run Code Online (Sandbox Code Playgroud)

c# boxing unboxing

28
推荐指数
2
解决办法
7174
查看次数

实时分布式系统的基本要素是什么?

我正在接受承包,今天我已经接受了承包商职位的第一轮面试.我已经通过了它,但有人告诉我 - 主要是一个UI开发人员 - 我只介绍了他们后端需要的基础知识,我应该在第二轮之前阅读分布式系统.

到目前为止,在我的职业生涯中,我一直在从事后期操作,从不需要实时.由于我还剩下几天,我需要涵盖哪些主题?首先能够回答他的问题并且通常被视为分布式系统中的适当问题?

问题是如何在UI上实时显示数据?后端需要做什么?我已经提到了实时数据馈送的生产者/消费者模式.他很喜欢,但他说他在第二次面试时需要更多.

任何帮助将非常感激,

distributed real-time distributed-computing distributed-system

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

如何使用Django的Font-awesome星级?

Fontawesome有一个很棒的星级css扩展,看起来非常棒.

但是,点击任何span元素都不会真正做任何事情.我不知道如何将其与我的数据库模型联系起来.假设我在Django中有一个0-5的整数字段.如何根据模板中用户的选择设置值?

在此输入图像描述

<span class="rating">
  <span class="star"></span>
  <span class="star"></span>
  <span class="star"></span>
  <span class="star"></span>
  <span class="star"></span>
</span>
Run Code Online (Sandbox Code Playgroud)

django twitter-bootstrap font-awesome

24
推荐指数
6
解决办法
7万
查看次数

Twitter Bootstrap:如何查看切换按钮的状态?

如何查看切换按钮的状态?

使用复选框,我可以收听复选框的"已更改"事件,并$(this).is(":checked")查看其状态.

<a id="myId" class="btn" data-toggle="button"/>
Run Code Online (Sandbox Code Playgroud)

但不确定如何使用切换按钮执行此操作?

jquery twitter-bootstrap

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

Git:如何直接从远程存储库存档?

我通常使用下面的命令project.git来获取指定目标中的存档:

git archive master | tar -x -C /home/kave/site/
Run Code Online (Sandbox Code Playgroud)

我想知道是否可以直接从远程存储库归档到目标目录?

我尝试过这样的事情,没有任何乐趣:

git archive master https://kave@dndigital.git.cloudforge.com/myoproject.git | tar -x -C /home/kave/site/
Run Code Online (Sandbox Code Playgroud)

有什么建议?谢谢

git

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

如何将视图限制为超级用户?

view.py

@login_required
@permission_required('is_superuser')
def score_reset(request):
   pass
Run Code Online (Sandbox Code Playgroud)

url.py

url(r'^score-reset/$', score_reset, name='score-reset'),    
Run Code Online (Sandbox Code Playgroud)

我有以下代码,令我惊讶的是,尽管使用非超级用户登录,我仍然可以使用该功能.我当时希望得到一个拒绝的许可.

我错过了什么?

django

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

如何在UILocalNotification的上下文中替换已弃用的NSWeekCalendarUnit?

在iOS 7.0中,NSWeekCalendarUnit已弃用.文档说它必须被替换:

使用NSCalendarUnitWeekOfMonth或NSCalendarUnitWeekOfYear,具体取决于你的意思

我使用NSWeekCalendarUnit每周的提醒,我要挑来获得相同的意思是哪一个?我不明白之间的差别NSCalendarUnitWeekOfMonthNSCalendarUnitWeekOfYear.

在没有令人信服的答案的情况下,有人在此问过同样的问题.

这很令人困惑. Next week在我的理解原子.今天是Sun 30 March 2014.因此Next week永远都是Sun 6 March 2014.这怎么可能从一个月或一年的角度改变?

date ios uilocalnotification ios7

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