백엔드 개발 PHP 튜토리얼 全方位解疑PHP应用问题_PHP教程

全方位解疑PHP应用问题_PHP教程

Jul 15, 2016 pm 01:33 PM
php 사용 성취하다 애플리케이션 1층 엔진 비교하다 ~의 유형 연산자 질문

谨慎使用==比较运算符,因为PHP是无类型的,但底层的C实现引擎是有类型的。最终都有类型转换,比如0==”abc”结果是true,这可能不是我们想要的

在语义上是某种明确类型的地方都要使用相关函数明确转换一下:intval。。。
在一个地方统一定义PHP的文件包含路径,这样在项目的各个地方包含文件的时候不要带上路径,只要文件名就行了,便于文件的转移

PHP应用问题还有一个就是不要直接在函数,类方法中使用PHP的全局变量,而应该是提供一个单独访问全局变量的代理,可以是对象,也可以只是一个简单的函数,如果是在类中访问全局变量,修改为使用代理全局变量的对象,这样两个对象之间有明确的依赖关系,不要在函数内部直接使用全局变量或者global 外面的变量,一个函数只应该使用函数参数传递进来的数据。自己尽量不要使用全局的变量然后到处global, 注意表单的重复提交。这可以采用令牌。

决定系统是单入口还是多入口

注意编码:文件存储编码,页面编码,数据库编码,用户的操作系统编码(用户直接在地址上输入内容时FF,Opera会把内容根据操作系统的编码urlencode编码,而IE6原样)

不要暴露文件的路径

提交请求后用户关掉浏览器或者点击浏览器的停止或者其它原因网络断掉后PHP是要继续处理还是停止处理,PHP如何知道以上情况:connection-handling(ignore_user_abort,register_shutdown_function,connection_status…)

时区问题,如果应用是分布式的话

explode应用在一个空值上将产生一个包含1项内容的数组:array(”"),但后者不是为false。也就是:null是假值,但explode(’,',null)后是真值,所以要小心if(explode(’,',$var))这种条件

$var = null;isset($var)结果为false。

PHP应用问题之安全问题

验证输入,不要相信来自用户的数据(GET,POST,COOKIE),对于一个PHP应用,应该统一的对这些数据进行过滤处理,比如编码html标签防止XSS,防止sql注入。

同时对于需要验证的内容,PHP要在验证一次,因为客户端的各种验证都可以很容易的跳过(伪表单,禁用js及firebug这些可以随便修改html的工具)。

要注意用户提交的数据大小。比如post数据或者get数据太大可能会有缓冲溢出问题

小心服务器的非PHP文件。如果应用可以上传或者下载文件,要避免直接通过文件名读取文件而文件名是用户提供的情况,可能用户会提供一些自己不该看到的文件,但PHP程序却读出来了。同时不要在返回的html中显示文件路径,文件的保存路径不应让用户看到,用户可能会根据这些路径猜出其它自己不该看到的文件

如果会话是保存在文件中的,并且web服务器上还有其它未知的用户(比如出租的web主机),应该修改会话文件的保存位置,或者把会话通过PHP的会话handler写到数据库中,因为会话默认保存在临时目录中,其它人可以访问到,如果会话中保存了密码之类的信息就很危险。

以上就是PHP应用问题的相关解决办法。


www.bkjia.comtruehttp://www.bkjia.com/PHPjc/446051.htmlTechArticle谨慎使用==比较运算符,因为PHP是无类型的,但底层的C实现引擎是有类型的。最终都有类型转换,比如0==abc结果是true,这可能不是我们想要...
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 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를 무료로 생성하십시오.

인기 기사

R.E.P.O. 에너지 결정과 그들이하는 일 (노란색 크리스탈)
3 몇 주 전 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. 최고의 그래픽 설정
3 몇 주 전 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. 아무도들을 수없는 경우 오디오를 수정하는 방법
3 몇 주 전 By 尊渡假赌尊渡假赌尊渡假赌
WWE 2K25 : Myrise에서 모든 것을 잠금 해제하는 방법
4 몇 주 전 By 尊渡假赌尊渡假赌尊渡假赌

뜨거운 도구

메모장++7.3.1

메모장++7.3.1

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

SublimeText3 중국어 버전

SublimeText3 중국어 버전

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

스튜디오 13.0.1 보내기

스튜디오 13.0.1 보내기

강력한 PHP 통합 개발 환경

드림위버 CS6

드림위버 CS6

시각적 웹 개발 도구

SublimeText3 Mac 버전

SublimeText3 Mac 버전

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

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:28 PM

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

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

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

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

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

CakePHP 로깅 CakePHP 로깅 Sep 10, 2024 pm 05:26 PM

CakePHP에 로그인하는 것은 매우 쉬운 작업입니다. 한 가지 기능만 사용하면 됩니다. cronjob과 같은 백그라운드 프로세스에 대해 오류, 예외, 사용자 활동, 사용자가 취한 조치를 기록할 수 있습니다. CakePHP에 데이터를 기록하는 것은 쉽습니다. log() 함수는 다음과 같습니다.

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:27 PM

CakePHP는 오픈 소스 MVC 프레임워크입니다. 이를 통해 애플리케이션 개발, 배포 및 유지 관리가 훨씬 쉬워집니다. CakePHP에는 가장 일반적인 작업의 과부하를 줄이기 위한 여러 라이브러리가 있습니다.

See all articles