从 php curls 发出请求时遇到 403 问题

问题描述 投票:0回答:1

我在 PHP 中使用 Curl 请求,并尝试从服务器获取响应以获取速度测试的标头信息,但出现 403 问题。虽然它在本地服务器上工作,但我已经尝试了很多,但没有找到任何解决方案。请帮助我解决这个问题。 --repeat-- 我在 PHP 中使用 Curl Requet 并尝试从服务器获取响应以获取速度测试的标头信息,但出现 403 问题。虽然它在本地服务器上工作,但我已经尝试了很多,但没有找到任何解决方案。请帮我解决这个问题。

$url = "https://www.justdial.com";
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url); 
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1); 
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); 
curl_setopt($ch, CURLOPT_USERAGENT, "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:53.0) Gecko/20100101 Firefox/53.0"); 
curl_setopt($ch, CURLOPT_HEADER, 1); 
// Add this line to include headers 
$headers = [    
 "server:nginx",     
"Cookie:Continent=AS; Ak_City=NEWDELHI;",
"x-frame-options:SAMEORIGIN",     
"x-akamai-transformed:9 - 0 pmb=mTOE,3mRUM,2",
"date:" . gmdate("D, d M Y H:i:s \G\M\T"),
"expires:" . gmdate("D, d M Y H:i:s \G\M\T", time() + 600),
"vary:Accept-Encoding",
"continent:AS",
"timing-allow-origin:*",
'Content-Type:text/html; charset=utf-8',
'Strict-Transport-Security:max-age=31536000; includeSubDomains',
"Pragma:akamai-x-cache-on, akamai-x-cache-remote-on,akamai-x-check-cacheable,akamai-x-get-request-id,akamai-x-get-true-cache-key,akamai-x-get-cache-key,akamai-x-serial-no,akamai-x-get-request-id",
'Accept-Encoding:deflate, br',
'Accept:text/html,application/xhtml+xml, application/ld+json, x-shader/x-vertex,application/xml,image/avif,image/webp,v=b3;q=0.8',
'Accept-Language:en-US, en;q=0.9',
'Connection:keep-alive',
'X-XSS-Protection: 1; mode=block',
'Upgrade-Insecure-Requests:true',
'Sec-Fetch-Dest:document',
'Sec-Fetch-Mode:navigate',
'Sec-Fetch-User:?1',
'Sec-Fetch-Site:none', 
];  
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);  
$html = curl_exec($ch); curl_close($ch);  
// Print only the header information 
$headerSize = curl_getinfo($ch, CURLINFO_HEADER_SIZE); 
$header = substr($html, 0, $headerSize); 
echo $header;

得到回应

HTTP/2 403 
server: AkamaiGHost
mime-version: 1.0
content-type: text/html
content-length: 265
expires: Fri, 18 Aug 2023 07:07:36 GMT
date: Fri, 18 Aug 2023 07:07:36 GMT
x-cache: TCP_DENIED from a23-59-252-95.deploy.akamaitechnologies.com (AkamaiGHost/11.2.2-50274567) (-)
x-cache-key: S/D/5965/800757/000/djskhdk-www.justdial.com/?akamai-transform=9
x-cache-key-extended-internal-use-only: S/D/5965/800757/000/djskhdk-www.justdial.com/?akamai-transform=9 vcd=5116
x-serial: 5965
set-cookie: Continent=AS; path=/; secure
set-cookie: Ak_City=TOKYO; path=/; secure
set-cookie: AKA_A2=A; expires=Fri, 18-Aug-2023 08:07:36 GMT; path=/; domain=justdial.com; secure; HttpOnly
server-timing: cdn-cache; desc=HIT
server-timing: edge; dur=1
x-jd-grn: 0.5ffc3b17.1692342456.248c13a
city: TOKYO
continent: AS
timing-allow-origin: *
strict-transport-security: max-age=31536000 ; includeSubDomains
x-check-cacheable: YES
x-akamai-request-id: 248c13a.4bb0504.3da38515.1dd6b96c
server-timing: ak_p; desc="1692342456314_389807199_38322490_26_11994_4_4_15";dur=1

预期回应

HTTP/2 200 
server: nginx
content-type: text/html; charset=utf-8
x-powered-by: Next.js
cache-control: private, no-cache, no-store, max-age=0, must-revalidate
zproduct_id: MjAweUhhMTMK
x-frame-options: SAMEORIGIN
content-security-policy: frame-ancestors jdmart.com www.jdmart.com labs.jdmart.com sales.genio.in jdhealth.justdial.com www.jdomni.com
x-xss-protection: 1; mode=block
x-akamai-transformed: 9 - 0 pmb=mTOE,3mRUM,2
vary: Accept-Encoding
date: Fri, 18 Aug 2023 07:55:59 GMT
x-cache: TCP_MISS from a23-65-124-43.deploy.akamaitechnologies.com (AkamaiGHost/11.2.2-50274567) (-)
x-cache-key: S/D/5965/800757/000/djskhdk-www.justdial.com/?akamai-transform=9
x-cache-key-extended-internal-use-only: S/D/5965/800757/000/djskhdk-www.justdial.com/?akamai-transform=9 vcd=5116
x-true-cache-key: /D/000/djskhdk-www.justdial.com/ vcd=5116
x-serial: 5965
set-cookie: _ctok=072d45ebe205e1692345359304x3tlmo3p3Crh9A86qEoljpppgvl8w4sBExtE; expires=Mon, 15 Aug 2033 07:55:59 GMT; path=/; domain=.justdial.com
set-cookie: web_visit=2023-08-18T07:55:59.304Z; expires=Mon, 15 Aug 2033 07:55:59 GMT; path=/; domain=.justdial.com
set-cookie: jd_www_nxt=1; expires=Mon, 15 Aug 2033 07:55:59 GMT; path=/; domain=.justdial.com
set-cookie: rfr=gen;  path=/; domain=.justdial.com
set-cookie: ppc=;Domain=.justdial.com
set-cookie: Continent=AS; path=/; secure
set-cookie: Ak_City=NEWDELHI; path=/; secure
set-cookie: AKA_A2=A; expires=Fri, 18-Aug-2023 08:55:59 GMT; path=/; domain=justdial.com; secure; HttpOnly
server-timing: edge; dur=19
server-timing: origin; dur=114
server-timing: cdn-cache; desc=MISS
x-jd-grn: 0.2b7c4117.1692345359.204b9051
city: NEWDELHI
continent: AS
timing-allow-origin:
strict-transport-security: max-age=31536000 ; includeSubDomains
x-check-cacheable: NO
x-akamai-request-id: 204b9051.4bb0504.3da38515.1dd6b96c
set-cookie: _abck=70A6760DB0052D4D917AED14F1D59655~-1~YAAQK3xBF2jct/6JAQAAP9ykBwqyy92iAPYrRVVvG1f686ef1yb+lIy/ln7nETHYLD1KLOILQdYXLhttgdS9JesxitDeJ+5/rnniNNDVUu2YWDjFzwXgKZDGo0eY7lHuQ3t3sH2m6Jmf9V9KZU2Zrvx5SQJo+vqkAtxMKcX4w1wM/rCqimG41G6ln6DXaqlWSWaSvEVSFif/O61iVe3wpJdsXEymEcIwMqVMn6s2W8f8TavRSe4HsUX6erdV6S6jtKuIouGGlptIN9fXQ0n/M9b4aQmhVfkYMdTKnI9sAja1rxKGAvQLarBOx1TEgBvGKMR1TMq2TIotAv7fzqy6NWBXn5wFdYfArysBKiiqlrC2auDGM3OcMkEQvoJLy0QMe0oBwA==~-1~-1~-1; Domain=.justdial.com; Path=/; Expires=Sat, 17 Aug 2024 07:55:59 GMT; Max-Age=31536000; Secure
set-cookie: ak_bmsc=CA8C76AFFEA92A182E7A546537D84257~000000000000000000000000000000~YAAQK3xBF2nct/6JAQAAP9ykBxSg7q5DvCs+3iL95seAS1ULhFhGAR6SW1F3cusy1kaSQQvnPGhjOFyQRbZIoieYirw82NFv3uMDKwMTxs2MRdC0+3GpZdt385hoezRIpCvxkx0sfkRkNuDmyl6Bwqny+qe119boaLrQm01U2KSyqFY+kSjMtDaEC3EDVQTZZza0xviMvuCqWWFvvj06GIRvpYfYyCkNWY9FRy5rk1zuxhhBBH49DEaoh3i82jzhjfLKeGVtVLX/oNUSknx0W4JDFD7DZXnR8hTZw61aoMhOTj4bzsYOYhQSpozMMyAZwp4NHpyLkGbNqEcLFtkrzLnmp5N73cFV56aX3n14My8qm2hoeDa9HMXIfSj3HEYfymn8UplPJcWuXbiC; Domain=.justdial.com; Path=/; Expires=Fri, 18 Aug 2023 09:55:59 GMT; Max-Age=7200; HttpOnly
set-cookie: bm_mi=4F8697355251C126B03262AB2EA3E57E~YAAQK3xBF2rct/6JAQAAP9ykBxTAYB0RNovZynZMYuAMNEazXGtgCZ1N8yuy7BpJv5g00M59XNzRisb0naTHl4hA5Fmn5k32D1ewwFoQyd/avqLzSIEIx8/9NXOzCsvWbedRuxru7HxCIjXbW/M+trly1cPyia0Dz/pKdLnUtdEC3pQpZwy4ACVvNOrIIrRP3ChWusmYz/Md9AlGiKBLGojr2FZkKbLIaVBxozLoCDbVpiJpMs33EoQZmJxdePIGb+ciaqn9NTE8CbvQsZ+lUv3IQ7GYIly9rNiWDyqfdoPMsTr7Ykhemvj0RE1xgGc=~1; Domain=.justdial.com; Path=/; Expires=Fri, 18 Aug 2023 07:55:59 GMT; Max-Age=0; Secure
set-cookie: bm_sz=E4D225B3BB757D8C7BF429CD2492D79C~YAAQK3xBF2vct/6JAQAAP9ykBxRpj+0fMq9gt0pZAW0ubjgQA0lGZTdg8zjq/RSnNWogRv8HgViynE0KX6AB5+aXJ1YfLtfxjwdKNOjOlSRh6VPI0CeRV0NwKgtfaZrpgkjrM/hOuBuvTRIh98ormUQ4IcUFq3GbPJ/YK8HCQvcf9W2n86rp796N2yGScRn6VdI9TfkEQ3HJUPgKcHLHJlt4OAaEj9XAw2tTKS/biKgAZH8GL1Lo6J5uqmxEX+U99YdiUQNkMlN0bEucqRgq+zriCFB1yY904PDopHZ3GTJ7LDw6bA==~4404793~3293489; Domain=.justdial.com; Path=/; Expires=Fri, 18 Aug 2023 11:55:59 GMT; Max-Age=14400
server-timing: ak_p; desc="1692345359215_390167595_541823057_13300_17585_42_0_15";dur=1 
php libcurl http-status-code-403 php-curl
1个回答
0
投票

我假设这些测试是以一定频率重复进行的。我注意到该网站使用 Akamai 作为 CDN,因此可能会在 CDN 或 WAF 中激活安全模块来检查和验证可疑请求。 HTTP 403 状态代码暗示了这种可能性。

如果您可以访问您想要测试的网站,您可以确认此信息。 当我从本地计算机运行您的代码时,我收到 HTTP 200 状态代码。

© www.soinside.com 2019 - 2024. All rights reserved.