2010-01-14 54 views
0

我想用PHP來設置cookie餅乾,所以它是相同的,通過下面的Perl代碼輸出之一:製作與PHP和Perl

my %auth; 
$auth{'username'} = $username; 
$auth{'password'} = $password; 
my $wholesaleauth = $co->cookie 
(
-name=>'wholesaleauth', 
-value=>\%auth, 
-expires=>'+1h', 
-path=>'/' 
); 

現在我不知道Perl和所有做不想更改perl代碼。我需要基本上模仿cookie。當我看着餅乾在我的鉻cookie管理它說的值是:

password&PASSWORD&username&USERNAME 

我想基本上是模仿,但在PHP。

+0

我基本上想要在PHP中創建一個cookie,然後已經構建的Perl腳本將讀取cookie和登錄(將被重定向到perl腳本)。 perl已經有一個登錄界面,但我想重做它在PHP中添加更多的功能登錄。 perl設置一個包含以下內容的cookie:password&PASS&username&USER – mikelbring

回答

0

我能夠使它正常工作,但使用setrawcookie代替。這不會使用百分比編碼,並且可以與perl set cookie相同。

1

該cookie看起來不太正確,你在perl中使用了什麼庫($ co-> cookie部分)?我在Perl CGI建議::餅乾:

http://perldoc.perl.org/CGI/Cookie.html

然後,你可以通過$ _COOKIE [ 'cookiename']變量在PHP中得到的cookie,並通過設置的setcookie其中:

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

+0

我只是看着我正在使用的腳本。我沒有寫,我根本不知道任何perl。基本上我重寫使用PHP的登錄,但它會重定向到一個設置cookie的Perl代碼。 – mikelbring

2

沒有經過測試,$價值組成。在自己的$值將

$username="username"; 
$password="password"; 
$auth['password']=$password; 
$auth['username']=$username; 
$value = "password\&".$auth['password']."\&username\&".$auth['username']; 
echo $value; 
setcookie("wholesaleauth", $value, time()+3600,"/"); 

看到PHP manual更多信息

+0

似乎沒有工作,將%添加到Cookie的內容中。 – mikelbring

+0

@mikelbring:這些'%'是編碼字符串標準方法的一部分(請參閱http://en.wikipedia.org/wiki/Percent-encoding)。我只是想知道爲什麼你要負責編碼與網站安全相關的任何事情,因爲你似乎還不知道自己不知道什麼。 –

+0

我在想我的自我爲什麼perl腳本會把用戶名和密碼放入cookie中,但這是我無法改變的。我只是簡單地給perl腳本做一個php前門,在那裏用戶使用php登錄到這個站點,並能夠執行各種與用戶相關的功能(更改密碼),我需要能夠複製perl用於用戶的cookie auth,因此用戶可以在不重新登錄的情況下轉到該網站的那一部分。 – mikelbring

3

我明白你只是想移植現有的腳本。但是,假設這些人真的是用來登錄網站的用戶名和密碼,我會說你有一個major security hole

比其他:

#!/usr/bin/perl 

use strict; use warnings; 

use CGI::Cookie; 

my %auth; 
$auth{'username'} = 'not safe'; 
$auth{'password'} = 'get me outta here'; 

my $wholesaleauth = CGI::Cookie->new(
    -name=>'wholesaleauth', 
    -value=>\%auth, 
    -expires=>'+1h', 
    -path=>'/' 
); 

print "Set-Cookie: $wholesaleauth\n"; 

輸出:無論用於構建或輸出他們的語言或庫的

Set-Cookie: wholesaleauth=password&get%20me%20outta%20here&username&not%20safe; path=/; expires=Thu, 14-Jan-2010 08:05:12 GMT

Cookies work in a common way

另請參閱標題爲drawbacks of cookies的部分。

+0

+1當試圖在代碼中工作時,始終重要的是要理解底層協議本身。很高興您發佈了維基百科的鏈接......我確定它引用了原始的RFC。 –

+0

我已經通知客戶,當我注意到它存儲cookie中的密碼和用戶名時,perl代碼並不是非常安全,但他們沒有完全重寫的預算,所以這是我必須使用的。另外我不知道perl,只是在php中創建一個用戶界面。 – mikelbring

+0

@AJ:作爲參考,我認爲cookies在http://www.faqs.org/rfcs/rfc2965.html中有描述 –