小编Dav*_*ner的帖子

安全cookie和混合https/http站点使用

许多网站似乎支持https但不使用安全cookie.我想让我的网站使用安全cookie,但允许使用http访问某些内容.

一个明智的做法似乎是为真实会话提供一个安全的cookie,以及一个非安全的cookie,它只是一个标志,表示用户是否登录(在标题中显示不同的内容,如注销链接而不是登录链接).此cookie不包含任何"真实"会话信息,只是为了使网站可以显示登录用户与网站http部分登出的页面略有不同的页面.

将整个站点作为https是另一种选择,但这似乎比普通的http慢得多,所以不是很理想.

为什么网站不使用这种设置并拥有安全的cookie?饼干盗窃的可能性似乎使安全饼干成为必需品.有没有更好的方法来实现同样的目标?

security cookies https session

51
推荐指数
3
解决办法
6万
查看次数

应对Common Lisp(SBCL)中的内存使用并将其最小化

我有一个没有太多内存(256Mb)的VPS,我试图使用SBCL + Hunchentoot进行Common Lisp开发来编写一些简单的web应用程序.大量的内存似乎在没有做任何特别复杂的事情的情况下被使用,并且在服务页面一段时间后,内存耗尽并且使用所有交换或者(如果没有交换)就会死掉.

所以我需要帮助:

  • 找出使用所有内存的内容(如果它是库或我,尤其是)
  • 限制SBCL允许使用的内存量,以避免大量的交换
  • 当内存耗尽时,处理干净的东西,而不是崩溃(因为它是一个web-app,我希望它继续并尝试清理).

我假设前两个是相当简单的,但第三个甚至可能吗?人们如何处理Lisp中的内存不足或受限制的内存条件?

(另外,我注意到64位SBCL似乎使​​用的内存是32位的两倍.这是预期的吗?我可以运行32位版本,如果它会节省大量内存)

lisp memory sbcl common-lisp out-of-memory

13
推荐指数
2
解决办法
4085
查看次数

gfortran包含路径 - 是否有传递多个-I选项的替代方法?

我有一些使用包含模块的Fortran代码,我想知道哪些环境变量实际上可以设置包含路径.

为了测试这一点,我一直在使用其中一个NAG示例代码.

这有效:

$ gfortran e04ucfe.f90 -lnag_nag -I/opt/NAG/fll6a23dfl/nag_interface_blocks
Run Code Online (Sandbox Code Playgroud)

这不起作用:

$ export CPATH=/opt/NAG/fll6a23dfl/nag_interface_blocks
$ gfortran e04ucfe.f90 -lnag_nag
e04ucfe.f90:10.37:

       USE nag_library, ONLY : nag_wp
                                     1
Fatal Error: Can't open module file 'nag_library.mod' for reading at (1): No such file or directory
Run Code Online (Sandbox Code Playgroud)

但是,GCC/GFortran文件指出:

gfortran编译器当前没有使用任何环境变量来控制其操作,而不是那些影响gcc操作的操作.

(参见https://gcc.gnu.org/onlinedocs/gfortran/Environment-Variables.htmlhttps://gcc.gnu.org/onlinedocs/gcc/Environment-Variables.html#Environment-Variables)

我已经尝试ltrace过gfortran运行,可以看到它查看其他环境变量(例如常规PATH)但不是CPATH.

我可以解决这个问题:

gfortran e04ucfe.f90 -lnag_nag `echo -I$CPATH | sed -e 's/:/ -I/'`
Run Code Online (Sandbox Code Playgroud)

......但为什么这有必要呢? CPATH使用gcc工作正常,包括其他语言而不是C/C++,那么为什么这不适用于gfortran? 有没有什么我可以成功地使用与gfort与gfortran的CPATH相同的效果,以避免必须传递多个-I参数?

旁注:LIBRARY_PATH以类似的方式工作正常,用于替换-L/path/to/libsgfortran命令行.

gcc fortran path include gfortran

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

Web浏览器是否应该在退出时删除所有`session'(expiry = 0)cookie?

我读到的关于cookie的所有内容都说,将cookie的到期时间设置为零应该使它成为一个"会话"cookie,浏览器将在退出时删除它.

http://www.cookiecentral.com/faq/说:

"...通常会话是浏览器打开的时间长度......"

http://php.net/manual/en/function.setcookie.php说:

"如果设置为0或省略,则cookie将在会话结束时(浏览器关闭时)到期."

但是,Firefox(3.0.8)中的一些实验表明:

  • cookie设置为会话,安全在退出时被删除
  • 设置为会话的cookie 不会在退出时被删除

Opera(9.64)的行为与我预期的一样,在退出时删除会话cookie,无论是否设置为安全.

我希望能够在我正在处理的网络应用程序中依赖它(将一个安全的cookie和一个不安全的cookie作为"登录"标志并让它们一起过期,要么是实时的,要么是0一个会话),但似乎即使它在标准中,那么浏览器也不足以依赖它:/

这是浏览器中的错误,预期的行为,和/或会话cookie的实际生命周期是否未在标准中真正定义?

browser cookies session

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

如何让ccache不通过编译器的完整路径来进行distcc

(这与ccache和绝对路径的问题不同,因为我只希望在ccache主机上不扩展命令路径)

当使用ccache和distcc时,ccache将编译器扩展为绝对路径,然后distcc不能使用远程机器上的PATH来选择使用哪个编译器.

例如,我调用CCACHE_PREFIX=distcc ccache g++ foo.cc和ccache 将其扩展为本地预处理步骤和缓存检查,然后调用distcc as distcc /usr/bin/g++,这是错误的版本(g ++存在于/ usr/bin之前的远程路径中,但是这并没有给它完全搜索路径的机会).

我有各种不同的机器用作distcc主机,并且它们在不同的位置安装了相同版本的gcc/g ++(是的,如果我把它们放在像/ usr/local这样的地方,这个问题就会消失,但我不能这样做).

有没有设置让ccache只传递g++给distcc而不是将路径扩展到本地编译器的绝对路径?如果还没有设置,我不会完全反对修补ccache,但这是最后的手段:)

path absolute ccache distcc

4
推荐指数
2
解决办法
1749
查看次数

如何在NetBeans中运行备用Rails生成器?

有谁知道我如何在Netbeans 6.7中运行替代Rails生成器?我已经安装了nifty-scaffold并且想要找到如何从IDE运行以下命令:

script/generate nifty_scaffold etc ....
Run Code Online (Sandbox Code Playgroud)

我已经安装了nifty-scaffold gem,但是当我为我的项目选择'Generate'时,它不会出现在下拉列表中.

(我在Windows上运行NetBeans)

netbeans ruby-on-rails

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