小编ava*_*sin的帖子

使用本机会话时,在php下"记住我"的最佳方法是什么?

以前我正在使用唯一的哈希创建额外的cookie"rememberme",它存储在数据库中,映射到用户ID.

如果用户有这样的cookie - 网站试图在数据库中找到它的价值,并且如果发现会话正在建立.

后来,开发新项目我认为自己生成这个独特的哈希可能不是很安全,并且为一个操作(用户识别)保留两个cookie(本地"PHPSESSID"+我的"rememberme")是过度的.

也许有一种方法可以设置不是全局会话生命周期,而是为不同的用户会话单独设置...或者可能最好将用户会话保存在数据库中,映射到用户ID?

更新1 我想如果难以制作"记住我"按钮,我们可以采取另一种方式 - 制作"不是我的电脑按钮".想法是在php.ini中设置默认的cookie_lifetime一周(例如),如果用户选中此复选框,我们将使用session_set_cookie_params函数将cookie_lifetime设置为零.

所以,第一个问题是 - session_set_cookie_params会影响其他用户的cookie(在文档中说,session_set_cookie_params选项将生效,直到php进程执行)

第二个问题是,如果session_set_cookie_params不影响全局设置,会话重新生成会影响用户,不想保留长寿命的cookie吗?

更新2:[问题1答案]

刚刚测试过session_set_cookie_params函数.我编写了一个脚本,使用session_set_cookie_params将会话cookie生存期设置为零,然后执行30秒:

if ($_GET['test']) {
  session_set_cookie_params (0);
  while (true) {
    sleep(1);
  }
}
session_start();
Run Code Online (Sandbox Code Playgroud)

所以,在第一个浏览器中,我刚刚使用?test = 1参数启动了这个脚本,就在此之后(当这个脚本执行时)我在第二个浏览器中启动了没有参数的脚本.答案是否定的 - 第二个浏览器的cookie没有受到影响.它有生命周期,在php.ini中指定

更新3:[问题2答案] 然后,我试图检查再生是否影响会话cookie生存期,这是由session_set_cookie_params设置的.

是的,它会影响.如果我设置具有自定义生命周期的会话cookie,由session_set_cookie_params设置,然后调用session_regenerate_id(),cookie将具有生命周期,在php.ini中设置

但是,如果我们在调用session_regenerate_id()之前设置session_set_cookie_params(0),我们的cookie将具有正确的生命周期.

就是这样了!那很简单!8)

谢谢女士们,先生们!

php session

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

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

How to modify request input after validation in laravel?

我找到了Request::replace方法,它允许替换 Request 中的输入参数。

但目前我只能看到一种实现它的方法 - 在每个控制器操作中编写相同的替换输入代码。

是否可以以某种方式对代码进行分组,这些代码将在请求成功验证之后、但在控制器操作开始之前执行?

例如,我需要在我的 api 中支持 ISO2 语言,但在幕后,我必须将它们转换为遗留语言,这些语言实际上存储在数据库中。目前我在控制器中有这段代码:

// Controller action context
$iso = $request->input('language');
$legacy = Language::iso2ToLegacy($iso);
$request->replace(['language' => $legacy]);

// Controller action code starts
Run Code Online (Sandbox Code Playgroud)

php laravel

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

bash中">"和"&>"有什么区别?

在bash中我们有3种流类型:

  • 0(STDIN)
  • 1(STDOUT)
  • 2(STDERR)

因此,在执行某些程序时,我可以使用管理这些流(例如,我可以将它们从控制台重定向到文件或smth,如/ dev/null等):

命令>/dev/null(仅显示STDERR中的错误,STDOUT将移至/ dev/null)命令2>/dev/null(将显示enly STDOUT,STDERR将移至/ dev/null)

我看到有些人写命令&>/dev/null

bash中">"和"&>"之间有什么区别?

linux bash console

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

我应该使用哪种加密AES/DES作为ssl证书的私钥?

我刚刚购买了comodo必备的通配符证书,他们让我生成csr来激活它.

据我了解,我需要:

  1. 生成RSA 2048bit私钥
  2. 基于它生成CSR

正如我所见,openssl genrsa命令接受不同的加密参数:

  • -des在cbc模式下使用DES加密生成的密钥-des3在ede cbc模式下使用DES加密生成的密钥(168位密钥)
  • -aes128,
  • -aes192,
  • -aes256

我该怎么用?

ssl openssl rsa certificate

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

什么是`emit` javascript函数?

在查看sax nodejs模块时,我看到了多个emit函数调用,但我找不到任何有关它的信息.

它是一些用于发射事件的V8原生工具吗?为什么sax-js不为流使用EventEmitter呢?

javascript node.js emit

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

如何在运行时禁用 alembic 日志记录?

我需要在单元测试中执行迁移时禁用 alembic 迁移日志记录。

我不能只是alembic从中删除记录器alembic.ini:我自己执行迁移时需要此输出。

以下对我不起作用: logging.getLogger('alembic').setLevel(logging.CRITICAL)

我如何在运行时禁用它?

python logging alembic

8
推荐指数
2
解决办法
5515
查看次数

如果在phalcon框架中使用xmlhttprequest,如何禁用渲染布局?

如何禁用布局渲染?

有一会儿,我可以通过jQuery检测到这个请求:

public function initialize()
{
    if (!$this->request->isAjax()) {
        // disable layout here... how?
    }
}
Run Code Online (Sandbox Code Playgroud)

可以在全球范围内完成吗?

处理ajax请求的代码对于所有控件都是相同的,有没有办法为整个应用程序全局定义此行为规则?

php layout controller xmlhttprequest phalcon

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

在PHP 5.4中调用foreach在空的php数组上是否安全?

我记得,在做foreach之前我总是要检查count($ array).从那时起,我总是做这个双重检查,并且想知道,现在用php 5.4有意义吗?

我已将error_reporting设置为E_ALL并执行以下脚本:

$x = [];

foreach($x as $y) {
    var_dump($y);
}
Run Code Online (Sandbox Code Playgroud)

并没有注意到(因为我记得,以前,也许它是php5.3)我得到通知.

现在在阵列上使用foreach是安全的,那是空的吗?

php arrays php-5.4

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

带有空格的文本下的行.可以通过html&css吗?

我花了好几个小时.我试图描述附加图像的问题.有必要用白线包装文本,并在行和文本之间留出一些空格.

在此输入图像描述

我想到的第一个解决方案 - 只是使用smth行将文本放在行上"margin-top:-20px;" 并为文本容器提供自定义背景(例如,灰色).但它不是解决方案,因为容器的背景是透明的:(

我想像这样制作smth(使用"float:left"):

<div class="line"></div>
<div class="text">TEXT</div>
<div class="line"></div>
<div class="text">TEXT</div>
<div class="line"></div>
Run Code Online (Sandbox Code Playgroud)

但如果我使用float:left为所有元素存在另一个问题:白线应该在容器的右侧结束.

也许这个问题有一些css最佳实践,或者有人可以给出一些建议......?任何想法都会有所帮助:)!

html css css3

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