• 理解本质的 REST at 2017年10月10日

    TL;DR

    反正读到一半就觉得我已经不知道 REST 为何物了 😂

  • Rails Cookie 如何解密 at 2017年10月09日

    是没有做签名验证。我看了你下你的实现,给加上了, 同时给它加了一个测试

    另外又用它写了一个读取 Devise session 的例子

  • 最近看到几篇文章,都是从 Rails 迁移到 Go 的案例。这些文章基本都是在2015年发的。希望能借助解答上面的问题:

  • 怎么做 Token Authentication? at 2017年10月04日

    如果一定要提升安全的话,其实还是有可行的方法的。我现在能想到的比如也可以通过 “锁定并强制重置密码 + 一个过期周期内强制使用账号密码登录” 实现。

    另外如果单纯从安全角度考虑,在数据库中存储 Token 如果被攻击者爆库的话,那造成的损失要比不存储的方式要大。 但是很显然,人们认为自己被爆库的可能性要低,所以大多数还是会选择存储 Token 的方案。

  • 怎么做 Token Authentication? at 2017年10月04日

    感觉账号被盗用后应该通过“锁定账号”的机制来提升安全。我们常用的银行或者其它系统都是这么处理的。

    比如账号密码被盗了,只删除现有 Token,盗用者只要重新登录就可以了。

  • 怎么做 Token Authentication? at 2017年10月03日

    就算有 JWE,没有 HTTPS 一样会被劫持。

    做用户验证的话被劫持后的效果是一样的,所以还是需要 HTTPS 更安全。所以我的说法有误。

    JWT 作为传输的包,验证内容还是建议用 token,不然 JWT 无法失效。

    失效可以通过设置的失效时间来确定。如果只用 JWT 作为传输感觉就没有必要了,那还是使用普通的 Token + HTTPS 的机制就好了。

    另外搜了下,感觉 JWT 还是一个饱受争议的技术: https://news.ycombinator.com/item?id=13865459

  • 怎么做 Token Authentication? at 2017年10月03日

    Token 要保存的,其实就是用它来做 key 来取用户信息。这种方式最好使用 https 连接。

    用 JWT 的话不用保存 Token,甚至不用 https 也是安全的。

  • 你的 test.sh 也是 cmd,和是不是附带路径无关。系统命令只是在 $PATH 中而已,是为了方便,你也可以用其绝对路径调用。众生平等。 你需要做的是对脚本用户和脚本权限的正确设置。

  • 其实这个问题是个无解的问题。因为没有一个量化说系统到了什么程度时就需要何种语言出场了,这不是语言层面的问题。因为 Rails 服务大型项目的案例也很多。

    我上面说的是“Go 在做服务方面有优势”, 这个优势包括很多东西。比如 Go 在语言层面原生支持的并发模型,它自带的 http 包对于一个入门小白也可以写出并发 Web 服务,而 Rails 在这方面需要额外的服务器的支持,比如 puma 等。毕竟还有很多程序员并不是很擅长把一个程序改成并发的。所以说 Go 语言的方案也只是一种选择而已。

    如果想了解更多,建议还是去学习一下 Go。

  • 是一篇翻译的文章,浅显易懂。对于入门 Go 和 理解区块链原理都很有帮助。

    其实之前有想法在 go-on-rails 中加入对 hyperleger 的支持,当然这还需要再看下了。

Started learning Ruby and Rails from 2012 just in a loose manner mostly based on my Perl experiences. Very happy to join the Rubyists to get together with YOU and MORE~