#61 楼 @luikore 第一点:https://github.com/astaxie/beego/blob/master/session/session.go#L67 自己看到底有没有 http only
第二点:nanotime 我随机我觉得已经比你所谓的随机字符串好很多了
第三点:看看什么是签名https://github.com/astaxie/beego/blob/master/controller.go#L312
最后欢迎各种挑刺
#16 楼 @iamzhangdabei 非常赞同你的说法
#49 楼 @hooopo 看看我对于 session 和 cookie 的理解:https://github.com/astaxie/build-web-application-with-golang/blob/master/ebook/06.1.md
还有 csrf 的核心手段是不可预测原则没错,IP 变化的请求拦截当然是基于不同的 IP 伪造请求拦截,我觉得这个设计没有任何问题啊。随机算法比较容易破解,为什么采用 sha1 主要是防止破解,md5 就可以反破解
cookie 里面不一定要放 sessionID 的,在 beego 的实现里面根本就没有 session 的概念在里面,所以你的理解是完全错误的
#34 楼 @bhuztez 所以我上面说了啊,你确信 CSRF 是放 session 里面的?你没理解 beego 的实现方式啊。然后你在看看http://en.wikipedia.org/wiki/Cross-site_request_forgery#Prevention 如何防御 csrf
楼上各位,Go 其实除了性能之外,还有很多别的优势,我在这个里面总结了一些,很多人也补充了一些,希望对大家了解 Go 有帮助:http://www.zhihu.com/question/21409296
#14 楼 @hooopo 你指的是https://github.com/astaxie/beego/pull/215/files#L1L34 这样的方法吧,这个目前还在考虑中,如何更好的加入进来。第二我不觉得通过 sha1 加密就是用了牛刀了。
#24 楼 @rasefon BenchmarksGame 不是为了测试不同语言的最优性能,而且为了测试不同语言最自然状态下编写程序的性能。比如,binary-trees 测试就是禁止自己定制专有的缓冲池的,而 C 语言的版本则可以随意使用 各种优化手段 (基于 apr 和缓冲池和 openmp 的并行优化).所以出现了如上的结果,你看看 Go 自带的测试用例的测试结果,相差就是在 10% 之内:
$GOROOT/test/bench/shootout/timing.sh
fasta -n 25000000
    gcc -m64 -O2 fasta.c              0.86u 0.00s 0.87r
    gc fasta                          0.85u 0.00s 0.86r
    gc_B fasta                        0.83u 0.00s 0.83r
reverse-complement < output-of-fasta-25000000
    gcc -m64 -O2 reverse-complement.c 0.45u 0.05s 0.50r
    gc reverse-complement             0.60u 0.05s 0.65r
    gc_B reverse-complement           0.55u 0.04s 0.59r
nbody -n 50000000
    gcc -m64 -O2 nbody.c -lm          5.51u 0.00s 5.52r
    gc nbody                          7.16u 0.00s 7.18r
    gc_B nbody                        7.12u 0.00s 7.14r
binary-tree 15 # too slow to use 20
    gcc -m64 -O2 binary-tree.c -lm    0.31u 0.00s 0.31r
    gc binary-tree                    1.08u 0.00s 1.07r
    gc binary-tree-freelist           0.15u 0.00s 0.15r
fannkuch 12
    gcc -m64 -O2 fannkuch.c           26.45u 0.00s 26.54r
    gc fannkuch                       35.99u 0.00s 36.08r
    gc fannkuch-parallel              73.40u 0.00s 18.58r
    gc_B fannkuch                     25.18u 0.00s 25.25r
regex-dna 100000
    gcc -m64 -O2 regex-dna.c -lpcre   0.25u 0.00s 0.26r
    gc regex-dna                      1.65u 0.00s 1.66r
    gc regex-dna-parallel             1.72u 0.01s 0.67r
    gc_B regex-dna                    1.64u 0.00s 1.65r
spectral-norm 5500
    gcc -m64 -O2 spectral-norm.c -lm  9.63u 0.00s 9.66r
    gc spectral-norm                  9.63u 0.00s 9.66r
    gc_B spectral-norm                9.63u 0.00s 9.66r
k-nucleotide 1000000
    gcc -O2 k-nucleotide.c -I/usr/include/glib-2.0 -I/usr/lib64/glib-2.0/include -lglib-2.0  2.62u 0.00s 2.63r
    gc k-nucleotide                   2.69u 0.01s 2.71r
    gc k-nucleotide-parallel          3.02u 0.00s 0.97r
    gc_B k-nucleotide                 2.66u 0.01s 2.68r
mandelbrot 16000
    gcc -m64 -O2 mandelbrot.c        20.95u 0.00s 21.01r
    gc mandelbrot                    23.73u 0.00s 23.79r
    gc_B mandelbrot                  23.72u 0.00s 23.79r
meteor 2098
    gcc -m64 -O2 meteor-contest.c     0.05u 0.00s 0.05r
    gc meteor-contest                 0.06u 0.00s 0.07r
    gc_B meteor-contest               0.06u 0.00s 0.06r
pidigits 10000
    gcc -m64 -O2 pidigits.c -lgmp     0.77u 0.00s 0.77r
    gc pidigits                       1.45u 0.01s 1.44r
    gc_B pidigits                     1.45u 0.01s 1.43r
threadring 50000000
    gcc -m64 -O2 threadring.c -lpthread     12.05u 261.20s 216.36r
    gc threadring                           6.61u 0.00s 6.63r
chameneos 6000000
    gcc -m64 -O2 chameneosredux.c -lpthread 4.04u 21.08s 4.20r
    gc chameneosredux                       4.97u 0.00s 4.99r
#17 楼 @luikore 第一,session 不是保存在服务器端那保存在哪里啊?session 和 cookie 的区别你了解吗? 第二、token 的这个产生方式我不觉得存在可预测的隐患,你有什么更好的建议吗?
第三,你别拿两年前的对比出来唬人啊,看得我都惊呆了,现在你可以再用 clang 和 Go 对比一下,这个是别人的对比情况:http://my.oschina.net/chai2010/blog/130859