백엔드 개발 PHP 튜토리얼 想到一个有关问题:代码有没有必要做ajax请求判断

想到一个有关问题:代码有没有必要做ajax请求判断

Jun 13, 2016 pm 12:54 PM
ajax content iframe nbsp php

想到一个问题:代码有没有必要做ajax请求判断
以前做ajax都没做过是否是ajax请求的判断。
有个新同事说要做判断,才注意到这个。
我查了很多站点 像优酷
他们都没做ajax获取的判断。
是否有必要做这个判断呢。

ajax ?php
------解决方案--------------------
最好做,一般ajax请求的返回数据要求要高些
------解决方案--------------------
引用:
引用:最好做,一般ajax请求的返回数据要求要高些
我觉得做了最好 
不做也无妨,之前这样认为请求的结果也是要呈现的。

为什么像 优酷这样的站点 不做这个限制呢

谢谢版主大哥的回答


要看什么情况了,比如你的网站支持发布一个消息的功能,而这个是ajax请求,同时get方式传参即可。比如:msg.php?content=test。

那么如果你不做ajax判断的话,同时你的站点又是很火的那种站点(比如微博等),那么我就可以恶意攻击,在我的网站下面插入一个iframe,而这个iframe指向的是msg.php?content=我被攻击了,  那么一旦你访问我的站点,在你不知道的情况下,其实你的微博已经更新了一条消息“我被攻击了”,这是最常见的也是最简单的csrf攻击。

有的严重其实攻击渗透到银行流程中去,所以看你的需求了,ajax我建议还是做判断吧,最起码也要refer判断一下吧~
现在有些网站这种漏洞还是很严重的,两周前我还发现了一个已知的国内大型网站的这种漏洞,只要我在论坛里面发个帖子说大家都来看看(那个地址是我自己的测试服务器url),然后这个网站的一个投票数就会自动增多,很多人都在不知情的情况下帮我投票。。。

真心建议,做个判断吧~
------解决方案--------------------
关键看需求,程序说到底就是接收一个请求,返回一个结果
如果是可预见合理请求(在其他层次已经处理了不合理情况),就没必要在这个层次再判断
如果不可预见是否合理,则就算不是ajax也要做各种判断
例如表单提交,虽然客户端javascript做了判断,但仍然不能确定是否恶意提交

如果返回是面向一个特定的请求,例如API,那么肯定要检查的
至于攻击之类,难道不是ajax就不防范么?

记住一个原则:易入难出

본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.

핫 AI 도구

Undresser.AI Undress

Undresser.AI Undress

사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover

AI Clothes Remover

사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool

Undress AI Tool

무료로 이미지를 벗다

Clothoff.io

Clothoff.io

AI 옷 제거제

AI Hentai Generator

AI Hentai Generator

AI Hentai를 무료로 생성하십시오.

뜨거운 도구

메모장++7.3.1

메모장++7.3.1

사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전

SublimeText3 중국어 버전

중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기

스튜디오 13.0.1 보내기

강력한 PHP 통합 개발 환경

드림위버 CS6

드림위버 CS6

시각적 웹 개발 도구

SublimeText3 Mac 버전

SublimeText3 Mac 버전

신 수준의 코드 편집 소프트웨어(SublimeText3)

CakePHP 프로젝트 구성 CakePHP 프로젝트 구성 Sep 10, 2024 pm 05:25 PM

이번 장에서는 CakePHP의 환경 변수, 일반 구성, 데이터베이스 구성, 이메일 구성에 대해 알아봅니다.

Ubuntu 및 Debian용 PHP 8.4 설치 및 업그레이드 가이드 Ubuntu 및 Debian용 PHP 8.4 설치 및 업그레이드 가이드 Dec 24, 2024 pm 04:42 PM

PHP 8.4는 상당한 양의 기능 중단 및 제거를 통해 몇 가지 새로운 기능, 보안 개선 및 성능 개선을 제공합니다. 이 가이드에서는 Ubuntu, Debian 또는 해당 파생 제품에서 PHP 8.4를 설치하거나 PHP 8.4로 업그레이드하는 방법을 설명합니다.

CakePHP 날짜 및 시간 CakePHP 날짜 및 시간 Sep 10, 2024 pm 05:27 PM

cakephp4에서 날짜와 시간을 다루기 위해 사용 가능한 FrozenTime 클래스를 활용하겠습니다.

CakePHP 파일 업로드 CakePHP 파일 업로드 Sep 10, 2024 pm 05:27 PM

파일 업로드 작업을 위해 양식 도우미를 사용할 것입니다. 다음은 파일 업로드의 예입니다.

CakePHP 라우팅 CakePHP 라우팅 Sep 10, 2024 pm 05:25 PM

이번 장에서는 라우팅과 관련된 다음과 같은 주제를 학습하겠습니다.

CakePHP 토론 CakePHP 토론 Sep 10, 2024 pm 05:28 PM

CakePHP는 PHP용 오픈 소스 프레임워크입니다. 이는 애플리케이션을 훨씬 쉽게 개발, 배포 및 유지 관리할 수 있도록 하기 위한 것입니다. CakePHP는 강력하고 이해하기 쉬운 MVC와 유사한 아키텍처를 기반으로 합니다. 모델, 뷰 및 컨트롤러 gu

PHP 개발을 위해 Visual Studio Code(VS Code)를 설정하는 방법 PHP 개발을 위해 Visual Studio Code(VS Code)를 설정하는 방법 Dec 20, 2024 am 11:31 AM

VS Code라고도 알려진 Visual Studio Code는 모든 주요 운영 체제에서 사용할 수 있는 무료 소스 코드 편집기 또는 통합 개발 환경(IDE)입니다. 다양한 프로그래밍 언어에 대한 대규모 확장 모음을 통해 VS Code는

CakePHP 유효성 검사기 만들기 CakePHP 유효성 검사기 만들기 Sep 10, 2024 pm 05:26 PM

컨트롤러에 다음 두 줄을 추가하면 유효성 검사기를 만들 수 있습니다.

See all articles