Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/267.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 在加载$\u Cookie之前重置旧Cookie_Php_Cookies_Coldfusion_Firewall_Mod Security - Fatal编程技术网

Php 在加载$\u Cookie之前重置旧Cookie

Php 在加载$\u Cookie之前重置旧Cookie,php,cookies,coldfusion,firewall,mod-security,Php,Cookies,Coldfusion,Firewall,Mod Security,我正在将一个用ColdFusion编写的旧web应用程序迁移到PHP5。 旧的应用程序使用了cookie,所以很多用户都在浏览器中获得了cookie 域是相同的,因此PHP5在自动全局$\u cookie中获取旧cookie,换句话说,生成的print\u r$\u cookie如下所示: Array ( [CFID] => 10753812 [CFTOKEN] => 81032420 [CFGLOBALS] => urltoken=CFID#=1075

我正在将一个用ColdFusion编写的旧web应用程序迁移到PHP5。 旧的应用程序使用了cookie,所以很多用户都在浏览器中获得了cookie

域是相同的,因此PHP5在自动全局$\u cookie中获取旧cookie,换句话说,生成的print\u r$\u cookie如下所示:

Array
(
    [CFID] => 10753812
    [CFTOKEN] => 81032420
    [CFGLOBALS] => urltoken=CFID#=10753812&CFTOKEN#=81032420#lastvisit={ts \'2011-12-07 11:51:43\'}#timecreated={ts \'2011-11-28 01:19:23\'}#hitcount=3#cftoken=81032420#cfid=10753812#
)
除了应用程序防火墙ModSecurity2:autoloading$\u COOKIES之外,总体上没有问题。防火墙会检测到它是邪恶的。之前用一个误报SQL注入,然后用一些XSS攻击匹配

我可以禁用这些规则,但我认为这不是最好的解决方案

如何检查ColdFusion cookie是否存在? 如何在不自动加载的情况下从用户浏览器中删除旧cookie


谢谢。

你可以试试PHP5.3吗?此php ini配置文件:

auto_globals_jit = On

然后,塞特库奇。。。。要重置,在此之后,访问$\u COOKIE读取

另一种可能的解决方案是在桥接页面中使用javascript

<script type="text/javascript">document.cookie="";</script>
使用特定的ModSecurity2规则和PHP桥接页解决:

1 HTTP层:当存在cookie时,重定向到。。。 在Apache的配置中:

SecRule REQUEST_COOKIES:CFGLOBALS !^$ "phase:1,nolog,pass,redirect:http://www.abcde.com/cookie_reset.php"
2应用层:因此重置旧cookie。 在cookie_reset.php页面中

<?php

setcookie ("CFID", "", time() - 3600);
setcookie ("CFTOKEN", "", time() - 3600);
setcookie ("CFGLOBALS", "", time() - 3600);

header("Location: http://www.abcde.com/");

这是不可行的,即时加载只影响$\u服务器和$\u环境。