#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