2011-12-07 5 views
0

私は古いWebアプリケーションをColdFusionからPHP5で書いています。 古いアプリはCookieを使用していたため、多くのユーザーがブラウザに追加しました。読み込み前に古いCookieをリセットする

のように見えるドメインが同じであるので、PHP5が自動グローバル$_COOKIEの古いクッキーを取得し、他の言葉で結果print_r($_COOKIE):アプリケーションファイアウォールModSecurity2を除き、全体的に大丈夫だそれ

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# 
) 

:ファイアウォールが自動的に$ _COOKIESを自動読み込みすると、悪として検出されます。誤った肯定的なSQLインジェクションを行う前に、一部のXSS攻撃が一致します。

私はこれらのルールを無効にすることができますが、最良の解決策ではありません(私は思っています)。

ColdFusionのCookieが存在するかどうかを確認するにはどうすればよいですか? オートローディングせずに古いCookieをユーザーのブラウザから削除するにはどうすればよいですか?

ありがとうございました。

答えて

0

ではJavaScriptを使用することができます。

1)HTTP層:Cookieが存在するときにリダイレクト... Apacheの設定で :

SecRule REQUEST_COOKIES:CFGLOBALS !^$ "phase:1,nolog,pass,redirect:http://www.abcde.com/cookie_reset.php" 

2)アプリケーション層:とても古いクッキーをリセットします。 unapplicableのページcookie_reset.php

<?php 

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

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

ます(PHP 5.3?)このPHPのiniファイルconfに試すことができます、そして

+0

で 、ジャスト・イン・タイムロードはたったの$ _SERVERや$ _ENVに影響を与えます。 –

0

別の可能性を読み取るために、この後、アクセスの$ _COOKIEをリセットするためには、setcookie(....)を

auto_globals_jit = On 

をソリューションには、特定のModSecurity2ルールとPHPブリッジページで解決ブリッジページ

<script type="text/javascript">document.cookie="";</script> 
+0

それはうまくいきません:-( –

+0

申し訳ありません、再試行(クッキーの代わりにクッキー)これは動作します! –

関連する問題