


javascript - PHP cURL or similar client requests are not considered cross-domain, will they be unsafe? What precautions are in place?
Before I thought that
PHP cURL
simulated requests would also have cross-domain restrictions.
Questions
When designing the interface before, sensitive data that requires permission to access (such as personal data that needs to be viewed after logging in). I will do token
detection.
But other ordinary interfaces can be obtained directly, but cross-domain headers are added to prevent cross-domain calls. However, it was later discovered that the call can be successful through PHP cURL
. I read eechen
’s answer later. As follows:
The same-origin policy to prevent cross-domain is a security mechanism in the browser. PHP's cURL can be regarded as a browser (client) under the command line without any restrictions, just like you use file_get_contents to download things on the Internet Same as whatever you want, source.
Do you think this design is a bit unreasonable? JS Ajax
has cross-domain restrictions, while PHP cURL
does not have cross-domain restrictions. Why didn’t the form of PHP cURL
also be used as a cross-domain restriction when determining cross-domain restrictions?
So how should such a form prevent cross-domain calls?
Solution
When I wanted to make a NetEase Cloud client before, I saw the interface of
NetEase Cloud Music
, which usesCSRF_TOKEN
to prevent cross-domain calls.
PS: Speaking of this solution, it seems that you can obtainCSRF_TOKEN
by crawling the web page, and then make cross-domain calls, right?Also, are there any solutions to solve this problem?
Looking forward to your answers, thank you!
============ 10-27 15:51 ==============
Sorry, I misunderstood... I thought it was some special processing done by PHP cURL
. Thank you Nan Xiaoniao
for your answer. It is actually equivalent to directly accessing the specified URL
, and naturally there will be no cross-domain problems...
What if I hope that my interface cannot be accessed by the outside world?
On the intranet
This shouldn’t require any settings.
On the external network
Set
CSRF_TOKEN
, but I checked some CSRF_TOKEN information. It seems thatCSRF_TOKEN
is mainly to preventcross-site request forgery
, not for this... to prevent carrying your authorization informationcookie: SESSIONID
to attack.CHECK
REFER
.What else is there?
Currently, I plan to use JWT
to generate Token
. Each time, the request needs to bring Token
(bringing user information, permission control, etc.).
I feel like I’ve left a hole, Sorry. Thanks also to Gforce
for the answer.
Reply content:
Before I thought that
PHP cURL
simulated requests would also have cross-domain restrictions.
Questions
When designing the interface before, sensitive data that requires permission to access (such as personal data that needs to be viewed after logging in). I will do token
detection.
But other common interfaces can be obtained directly, but cross-domain headers are added to prevent cross-domain calls. However, it was later discovered that the call can be successful through PHP cURL
. I read eechen
’s answer later. As follows:
The same-origin policy to prevent cross-domain is a security mechanism in the browser. PHP's cURL can be regarded as a browser (client) under the command line without any restrictions, just like you use file_get_contents to download things on the Internet Same as whatever you want, source.
Do you think this design is a bit unreasonable? JS Ajax
has cross-domain restrictions, while PHP cURL
does not have cross-domain restrictions. Why didn’t the form of PHP cURL
also be used as a cross-domain restriction when determining cross-domain restrictions?
How to prevent cross-domain calls in this form?
Solution
When I wanted to make a NetEase Cloud client before, I saw the interface of
NetEase Cloud Music
, which usesCSRF_TOKEN
to prevent cross-domain calls.
PS: Speaking of this solution, it seems that you can obtainCSRF_TOKEN
by crawling the web page, and then make cross-domain calls, right?Also, are there any solutions to solve this problem?
Looking forward to your answers, thank you!
============ 10-27 15:51 ==============
Sorry, I misunderstood... I thought it was some special processing done by PHP cURL
. Thank you Nan Xiaoniao
for your answer. It is actually equivalent to directly accessing the specified URL
, and naturally there will be no cross-domain problems...
What if I hope that my interface cannot be accessed by the outside world?
On the intranet
This shouldn’t require any settings.
On the external network
Set
CSRF_TOKEN
, but I checked some CSRF_TOKEN information. It seems thatCSRF_TOKEN
is mainly to preventcross-site request forgery
, not for this... to prevent carrying your authorization informationcookie: SESSIONID
to attack.CHECK
REFER
.What else is there?
Currently, I plan to use JWT
to generate Token
. Every request needs to bring Token
(bringing user information, permission control, etc.).
I feel like I’ve left a hole, Sorry. Thanks also to Gforce
for the answer.
php curl is equivalent to opening a URL directly with your browser, which of course does not count as cross-domain
You can perform an interface verification, such as using JWT

Hot AI Tools

Undresser.AI Undress
AI-powered app for creating realistic nude photos

AI Clothes Remover
Online AI tool for removing clothes from photos.

Undress AI Tool
Undress images for free

Clothoff.io
AI clothes remover

AI Hentai Generator
Generate AI Hentai for free.

Hot Article

Hot Tools

Notepad++7.3.1
Easy-to-use and free code editor

SublimeText3 Chinese version
Chinese version, very easy to use

Zend Studio 13.0.1
Powerful PHP integrated development environment

Dreamweaver CS6
Visual web development tools

SublimeText3 Mac version
God-level code editing software (SublimeText3)

Hot Topics

In this chapter, we will understand the Environment Variables, General Configuration, Database Configuration and Email Configuration in CakePHP.

PHP 8.4 brings several new features, security improvements, and performance improvements with healthy amounts of feature deprecations and removals. This guide explains how to install PHP 8.4 or upgrade to PHP 8.4 on Ubuntu, Debian, or their derivati

To work with date and time in cakephp4, we are going to make use of the available FrozenTime class.

To work on file upload we are going to use the form helper. Here, is an example for file upload.

In this chapter, we are going to learn the following topics related to routing ?

CakePHP is an open-source framework for PHP. It is intended to make developing, deploying and maintaining applications much easier. CakePHP is based on a MVC-like architecture that is both powerful and easy to grasp. Models, Views, and Controllers gu

Visual Studio Code, also known as VS Code, is a free source code editor — or integrated development environment (IDE) — available for all major operating systems. With a large collection of extensions for many programming languages, VS Code can be c

Validator can be created by adding the following two lines in the controller.
