0
웹 사이트에 로그인하려면 스크립트를 만들어야합니다. 그렇다면 로그인 페이지에서 CSRF 토큰을 가져 와서 로그인 작업 URL에 게시 할 것입니다. [허용 데이터 JSON이다.]페이지에서 CSRF 토큰 가져 오기 & POST it
이 로그인 방법 :
public function login()
{
$login = 'https://XXXXXXXXXXXXXXXXXXX';
$csrf = $this->token();
$data = array(
"email" => '[email protected]',
"password" => '123456',
"displayType" => 'json',
"csrf" => $csrf
);
$json = json_encode($data);
$ch = curl_init($login);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_HEADER, true); // For debugging purposes
curl_setopt($ch, CURLOPT_HTTPHEADER, $this->headers);
curl_setopt($ch, CURLOPT_POSTFIELDS, $json);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
$result = curl_exec($ch);
return $result;
}
그리고 여기 토큰 그래버 방법 :
public function token()
{
$source = $this->get("https://OOOOOOOOOOOOOOOOOOO");
$dom = new DOMDocument();
$dom->loadHTML($source);
$dxp = new DOMXpath($dom);
$csrf = $dxp->query('//input[@name="csrf"]/@value')->item(0)->value;
return $csrf;
}
토큰이 성공적으로 추출
있지만 내의 모든 호출 변경 같은 세션. 왜?! .public function __construct($url)
{
if(session_status() == PHP_SESSION_NONE)
session_start();
...
}
원격 사이트에 세션 ID가 전달되는 것을 보지 못하거나 URL에' $ login' 또는 전달할 헤더? – CBroe