PHP tarayıcısı olarak Curl kullanımı aynı çerez izin nasıl

4 Cevap php

Ben tarayıcı ve çıkışları tarayıcıya tepki adına bir HTTP isteği yapan bir PHP komut dosyası var. Sorun ben çerez değişkenler hakkında şikayet Bu sayfada tarayıcı bağlantıları tıkladığınızda olduğunu. Ben bu site için tarayıcılar çerez (ler) gerekiyor varsayarak yaşıyorum.

nasıl müdahale ve uzak siteye iletebilirim?

4 Cevap

Sen yapamazsın.

Eğer isteği kıvırmak ise, çıkışını ayrıştırmak gerekir ve onlar da sizin sunucuya geçmesi, böylece tüm bağlantıları değiştirin.

  www.yourdomain.com/f?=www.someotherdomain.com/realpage

Eğer kıvırmak isteği kalıcı çerezleri kullanır, bu işe tek yoludur. CURL çerezleri kendisi tutabilirsiniz. Cookie dosyasında (curl) bir oturum kimliği atama böylece sonraki istekleri aynı çerezleri olsun. Bir kullanıcı bir bağlantıyı tıkladığında, tekrar isteği kıvırmak gerekir.

Bu site1 site2 için çerezleri ayarlamak için izin veren bir güvenlik sorunu olduğunu. Paypal için tarayıcınızın çerezleri ayarlamak ve int veya başka zararlı bir eylemi oturum vardı düşünce içine kullanıcıyı kandırmak düşünün.

In fact, it is possible. You just have to take the cookie given by the browser and pass it as a parameter of curl to it masquerading as the browser. As is done in a session jacking...

İşte bir örnek kod:

// Init curl connection
$curl = curl_init('http://otherserver.com/');
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
// You can add your GET or POST param

// Retrieving session ID 
$strCookie = 'PHPSESSID=' . $_COOKIE['PHPSESSID'] . '; path=/';    

// We pass the sessionid of the browser within the curl request
curl_setopt( $curl, CURLOPT_COOKIE, $strCookie ); 

// We receive the answer as if we were the browser
$curl_response = curl_exec($curl);

Amacınız başka bir web sitesini aramak için ise çok iyi çalışır, ama bizim web sunucusu çağrı eğer (curl komutu başlatıyor ki aynı) başarısız olacaktır. Lütfen oturum dosyası böylece aradığınız URL erişemez hala bu script tarafından kilitli / açık çünkü.

Eğer aynı sunucudan bir sayfa aramak istiyorsanız, size kıvırmak yürütmek önce bu kod ile oturum dosyayı kapatmak zorunda:

$curl = curl_init('http://sameserver.com/');
//...
session_write_close();
$curl_response = curl_exec($curl);

Bu yardım Birini Umut :)

Cookie genellikle gibi HTTP isteği başlık ile gönderilir

Host stackoverflow.com
User-Agent ...
Accept-Language en-us,en;q=0.5
Referer http://stackoverflow.com/unanswered
Cookie bla=blabla;blubb=blu

Yani sadece başlığındaki çerez kısmını değiştirmek zorunda sanırım.