Aynı etki alanındaki farklı bir sayfadan cURL kullanarak bir PunBB forumuna giriş yapmaya çalışıyorum.cURL cookiejar satırı #HttpOnly_ ile yorum yaptı?
Oturum açarken, cURL gerçekleştirilir ve ilk yanıtı forumun 'başarılı giriş' sayfasıdır. Ancak, bu forumda herhangi bir bağlantıya tıklandığında hiçbir çerez ayarlanmadı ve çıkış yaptım.
Biraz araştırdıktan sonra, cookiejar dosyamdan sonra giriş yapmak için gerekli olan çerezden bahseder. Bu çerezi ve değerini tarayıcımın içine manuel olarak oluşturursam başarıyla giriş yaptım ve her şey yolunda. Yani saklanan çerez değeri doğru.
Tanımlama bilgisi adımda cookie adımı/değeri içeren satır yorumlanır.
ilk soru: Neden? saniye: Bu davranış nasıl önlenir? Burada
# Netscape HTTP Cookie File
# http://curl.haxx.se/rfc/cookie_spec.html
# This file was generated by libcurl! Edit at your own risk.
www.example.com FALSE / FALSE 0 PHPSESSID 3d7oe6vt3blv3vs3ea94nljcs7
#HttpOnly_www.example.com FALSE / FALSE 1340974408 forum_cookie_e19209 MnwyYWQ4OGViNDI2NjE5MWEwMGZiNGZkNDFmZDY5ZDZhYjM5OTA5NDVjfDEzNDA5NzQ0MDh8OTU0NTExOGZhNWNlNGY5OGMzZDk3MmE0NDlmMWRjNzM3ZjI1NzMxOA%3D%3D
Ve bukle çağrısı:
function forumLogin() {
$loginFields = array('req_username' => $_REQUEST['username']
,'req_password' => $_REQUEST['password']
,'form_sent' => "1"
); //and so on
$login = getUrl('http://www.example.com/manager/forum/login.php', 'post', $loginFields);
return $login;
}
function getUrl($url, $method='', $vars='')
{
$ch = curl_init();
if ($method == 'post') {
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $vars);
}
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 0);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
curl_setopt($ch, CURLOPT_COOKIEJAR, 'cookies.txt');
curl_setopt($ch, CURLOPT_COOKIEFILE, 'cookies.txt');
$buffer = curl_exec($ch);
curl_close($ch);
return $buffer;
}
// successful login so reset fail count and update key values
if(isset($_SESSION['mgrValidated'])) {
$sql = "update $dbase.`".$table_prefix."user_attributes` SET failedlogincount=0, logincount=logincount+1, lastlogin=thislogin, thislogin=".time().", sessionid='$currentsessionid' where internalKey=$internalKey";
$rs = mysql_query($sql);
var_dump(forumLogin());
}
exit;
Ah Tamam! Teşekkürler Daniel. Görünüşe göre, hashın anlamını tamamen yanlış yorumlamışım. Tıklama bölümünü anlamadığınız hakkındaki yorumunuz. Eh, çerez cookiejar'da doğru bir şekilde yazılsa bile, tarayıcıda düzenli bir çerez olarak ayarlanmamıştır. Yani, ilk yanıt sayfası bana doğru bir şekilde oturum açtığımı söylüyor ama çerez orada olmadığı için, forumdaki herhangi bir bağlantıyı tıklattığımda (giriş yapmamamı söyleyeceğim) gerçekten acıklı bir şekilde ortaya çıkmayacağım. Bu konuda herhangi bir düşünce var mı? – Amelia
Evet, kıvırıcı müşteridir ve çerezleri alır ve kullanır, tarayıcıya gönderdiği anlamına gelmez, hatta siz sadece programın sonuçlarını izleyen tarayıcıya gönderirsiniz. –
Anladım. Tamam. Bu yüzden doğru kurabiyeleri almak için bir canavara yazdım ve php'yi ayarladım :) Hayat güzeldir. Yardımlarınız için teşekkürler Daniel! – Amelia