Table of Contents
Questions
Solution
Looking forward to your answers, thank you!
On the intranet
On the external network
Reply content:
Home Backend Development PHP Tutorial javascript - PHP cURL or similar client requests are not considered cross-domain, will they be unsafe? What precautions are in place?

javascript - PHP cURL or similar client requests are not considered cross-domain, will they be unsafe? What precautions are in place?

Dec 01, 2016 am 01:27 AM
javascript php Safety Cross domain

Before I thought that PHP cURLsimulated 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

  1. When I wanted to make a NetEase Cloud client before, I saw the interface of NetEase Cloud Music, which uses CSRF_TOKEN to prevent cross-domain calls.
    PS: Speaking of this solution, it seems that you can obtain CSRF_TOKEN by crawling the web page, and then make cross-domain calls, right?

  2. 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

  1. Set CSRF_TOKEN, but I checked some CSRF_TOKEN information. It seems that CSRF_TOKEN is mainly to prevent cross-site request forgery, not for this... to prevent carrying your authorization informationcookie: SESSIONID to attack.

  2. CHECK REFER.

  3. 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 cURLsimulated 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

  1. When I wanted to make a NetEase Cloud client before, I saw the interface of NetEase Cloud Music, which uses CSRF_TOKEN to prevent cross-domain calls.
    PS: Speaking of this solution, it seems that you can obtain CSRF_TOKEN by crawling the web page, and then make cross-domain calls, right?

  2. 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

  1. Set CSRF_TOKEN, but I checked some CSRF_TOKEN information. It seems that CSRF_TOKEN is mainly to prevent cross-site request forgery, not for this... to prevent carrying your authorization informationcookie: SESSIONID to attack.

  2. CHECK REFER.

  3. 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

Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn

Hot AI Tools

Undresser.AI Undress

Undresser.AI Undress

AI-powered app for creating realistic nude photos

AI Clothes Remover

AI Clothes Remover

Online AI tool for removing clothes from photos.

Undress AI Tool

Undress AI Tool

Undress images for free

Clothoff.io

Clothoff.io

AI clothes remover

AI Hentai Generator

AI Hentai Generator

Generate AI Hentai for free.

Hot Article

R.E.P.O. Energy Crystals Explained and What They Do (Yellow Crystal)
2 weeks ago By 尊渡假赌尊渡假赌尊渡假赌
Repo: How To Revive Teammates
4 weeks ago By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island Adventure: How To Get Giant Seeds
3 weeks ago By 尊渡假赌尊渡假赌尊渡假赌

Hot Tools

Notepad++7.3.1

Notepad++7.3.1

Easy-to-use and free code editor

SublimeText3 Chinese version

SublimeText3 Chinese version

Chinese version, very easy to use

Zend Studio 13.0.1

Zend Studio 13.0.1

Powerful PHP integrated development environment

Dreamweaver CS6

Dreamweaver CS6

Visual web development tools

SublimeText3 Mac version

SublimeText3 Mac version

God-level code editing software (SublimeText3)

CakePHP Project Configuration CakePHP Project Configuration Sep 10, 2024 pm 05:25 PM

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

PHP 8.4 Installation and Upgrade guide for Ubuntu and Debian PHP 8.4 Installation and Upgrade guide for Ubuntu and Debian Dec 24, 2024 pm 04:42 PM

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

CakePHP Date and Time CakePHP Date and Time Sep 10, 2024 pm 05:27 PM

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

CakePHP File upload CakePHP File upload Sep 10, 2024 pm 05:27 PM

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

CakePHP Routing CakePHP Routing Sep 10, 2024 pm 05:25 PM

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

Discuss CakePHP Discuss CakePHP Sep 10, 2024 pm 05:28 PM

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

How To Set Up Visual Studio Code (VS Code) for PHP Development How To Set Up Visual Studio Code (VS Code) for PHP Development Dec 20, 2024 am 11:31 AM

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

CakePHP Creating Validators CakePHP Creating Validators Sep 10, 2024 pm 05:26 PM

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

See all articles