Rumah pembangunan bahagian belakang tutorial php 关于PHP安全编程的一些建议

关于PHP安全编程的一些建议

Aug 20, 2019 am 10:27 AM
Keselamatan pengaturcaraan

简介

要提供互联网服务,当你在开发代码的时候必须时刻保持安全意识。可能大部分 PHP 脚本都对安全问题不在意,这很大程度上是因为有大量的无经验程序员在使用这门语言。但是,没有理由让你因为对你的代码的不确定性而导致不一致的安全策略。当你在服务器上放任何涉及到钱的东西时,就有可能会有人尝试破解它。创建一个论坛程序或者任何形式的购物车,被攻击的可能性就上升到了无穷大。

推荐PHP视频教程:https://www.php.cn/course/list/29/type/2.html

背景

为了确保你的 web 内容安全,这里有一些常规的安全准则:

1、别相信表单

攻击表单很简单。通过使用一个简单的 JavaScript 技巧,你可以限制你的表单只允许在评分域中填写 1 到 5 的数字。如果有人关闭了他们浏览器的 JavaScript 功能或者提交自定义的表单数据,你客户端的验证就失败了。

用户主要通过表单参数和你的脚本交互,因此他们是最大的安全风险。你应该学到什么呢?在 PHP 脚本中,总是要验证 传递给任何 PHP 脚本的数据。在本文中,我们向你演示了如何分析和防范跨站脚本(XSS)攻击,它可能会劫持用户凭据(甚至更严重)。你也会看到如何防止会玷污或毁坏你数据的 MySQL 注入攻击。

2、别相信用户

假定你网站获取的每一份数据都充满了有害的代码。清理每一部分,即便你相信没有人会尝试攻击你的站点。

3、关闭全局变量

你可能会有的最大安全漏洞是启用了 register_globals 配置参数。幸运的是,PHP 4.2 及以后版本默认关闭了这个配置。如果打开了 register_globals,你可以在你的 php.ini 文件中通过改变 register_globals 变量为 Off 关闭该功能:

register_globals = Off
Salin selepas log masuk

新手程序员觉得注册全局变量很方便,但他们不会意识到这个设置有多么危险。一个启用了全局变量的服务器会自动为全局变量赋任何形式的参数。为了了解它如何工作以及为什么有危险,让我们来看一个例子。

假设你有一个称为 process.php 的脚本,它会向你的数据库插入表单数据。初始的表单像下面这样:

<input name="username" type="text" size="15" maxlength="64">
Salin selepas log masuk

运行 process.php 的时候,启用了注册全局变量的 PHP 会将该参数赋值到 $username 变量。这会比通过$_POST[&#39;username&#39;]$_GET[&#39;username&#39;] 访问它节省击键次数。不幸的是,这也会给你留下安全问题,因为 PHP 会设置该变量的值为通过 GET 或 POST 的参数发送到脚本的任何值,如果你没有显示地初始化该变量并且你不希望任何人去操作它,这就会有一个大问题。

看下面的脚本,假如 $authorized 变量的值为 true,它会给用户显示通过验证的数据。正常情况下,只有当用户正确通过了这个假想的 authenticated_user() 函数验证,$authorized 变量的值才会被设置为真。但是如果你启用了 register_globals,任何人都可以发送一个 GET 参数,例如 authorized=1 去覆盖它:

<?php
// Define $authorized = true only if user is authenticated
if (authenticated_user()) {
    $authorized = true;
}
?>
Salin selepas log masuk

这个故事的寓意是,你应该从预定义的服务器变量中获取表单数据。所有通过 post 表单传递到你 web 页面的数据都会自动保存到一个称为 $_POST 的大数组中,所有的 GET 数据都保存在 $_GET 大数组中。文件上传信息保存在一个称为 $_FILES 的特殊数据中。另外,还有一个称为 $_REQUEST 的复合变量。

要从一个 POST 方法表单中访问username字段,可以使用 $_POST[&#39;username&#39;]。如果 username 在 URL 中就使用$_GET[&#39;username&#39;]。如果你不确定值来自哪里,用 $_REQUEST[&#39;username&#39;]

<?php
$post_value = $_POST[&#39;post_value&#39;];
$get_value = $_GET[&#39;get_value&#39;];
$some_variable = $_REQUEST[&#39;some_value&#39;]; 
?>
Salin selepas log masuk

$_REQUEST $_GET$_POST、和 $_COOKIE 数组的结合。如果你有两个或多个值有相同的参数名称,注意 PHP 会使用哪个。默认的顺序是 cookiePOST、然后是 GET

以上就是为大家整理的一些编程安全建议。更过相关问题请访问PHP中文网:https://www.php.cn/

Atas ialah kandungan terperinci 关于PHP安全编程的一些建议. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

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)
3 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Tetapan grafik terbaik
3 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Cara Memperbaiki Audio Jika anda tidak dapat mendengar sesiapa
3 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
WWE 2K25: Cara Membuka Segala -galanya Di Myrise
4 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)

Apakah Intel TXT? Apakah Intel TXT? Jun 11, 2023 pm 06:57 PM

IntelTXT ialah teknologi keselamatan berbantukan perkakasan yang dilancarkan oleh Intel Ia boleh memastikan integriti dan keselamatan pelayan semasa permulaan dengan mewujudkan ruang yang dilindungi antara CPU dan BIOS. Nama penuh TXT ialah TrustedExecutionTechnology, iaitu Trusted Execution Technology. Ringkasnya, TXT ialah teknologi keselamatan yang menyediakan perlindungan peringkat perkakasan untuk memastikan pelayan tidak diubah suai oleh program berniat jahat atau perisian yang tidak dibenarkan apabila ia dimulakan. yang ini

Bagaimana untuk mengelakkan serangan pemisahan respons HTTP menggunakan PHP Bagaimana untuk mengelakkan serangan pemisahan respons HTTP menggunakan PHP Jun 24, 2023 am 10:40 AM

Serangan pemisahan tindak balas HTTP (serangan pemisahan tindak balas HTTP) ialah kelemahan yang menggunakan aplikasi web untuk memproses respons HTTP Penyerang membina tindak balas HTTP berniat jahat dan menyuntik kod hasad ke dalam respons yang sah untuk mencapai tujuan menyerang pengguna. Sebagai bahasa pembangunan web yang biasa digunakan, PHP juga menghadapi ancaman serangan pemisahan tindak balas HTTP. Artikel ini akan memperkenalkan cara menggunakan PHP untuk mencegah serangan pemisahan respons HTTP. Memahami serangan pemisahan tindak balas HTTP

BYD bekerjasama dengan Stingray untuk mencipta ruang hiburan dalam kereta yang selamat dan menyeronokkan BYD bekerjasama dengan Stingray untuk mencipta ruang hiburan dalam kereta yang selamat dan menyeronokkan Aug 11, 2023 pm 02:09 PM

Akaun awam WeChat rasmi BYD mengumumkan bahawa BYD telah mencapai perjanjian kerjasama dengan Stingray, sebuah syarikat teknologi media muzik, dan merancang untuk memperkenalkan produk KTV kereta interaktif Stingray dalam kenderaan tenaga baharu dari 2023 dan mempromosikannya di pelbagai pasaran di seluruh dunia , BYD dan Stingray Sistem hiburan yang dibangunkan bersama oleh Stingray akan menambah lebih banyak fungsi hiburan kepada kenderaan tenaga baharu BYD untuk memenuhi pelbagai keperluan pengguna. Sistem hiburan akan menyokong berbilang bahasa dan menyediakan reka bentuk antara muka yang mesra pengguna, membolehkan pengguna mencari dengan mudah mengikut tajuk lagu, artis, lirik atau genre. Di samping itu, sistem akan mengemas kini trek secara automatik setiap bulan, membawa pengguna pengalaman muzik baharu Bagi memastikan keselamatan pemanduan, apabila kenderaan berada dalam mod pemanduan.

Resolusi DNS selamat dalam proksi terbalik Nginx Resolusi DNS selamat dalam proksi terbalik Nginx Jun 11, 2023 am 09:51 AM

Memandangkan aplikasi web terus berkembang, kami memerlukan lebih banyak langkah keselamatan untuk melindungi data dan privasi kami. Antaranya, resolusi DNS yang selamat adalah langkah yang sangat penting, yang boleh melindungi kita daripada diserang oleh pelayan DNS yang berniat jahat. Ia juga penting untuk menggunakan resolusi DNS yang selamat dalam proksi terbalik Nginx. Artikel ini akan membincangkan resolusi DNS selamat dalam proksi terbalik Nginx dan menerangkan cara untuk menyediakannya. Apakah resolusi DNS? Resolusi DNS (DomainNameSystem) menukar nama domain kepada IP

Bagaimana untuk melindungi daripada keylogger rangkaian? Bagaimana untuk melindungi daripada keylogger rangkaian? Jun 11, 2023 pm 03:03 PM

Dalam era Internet, kebocoran maklumat telah menjadi fenomena yang sangat biasa dalam kehidupan kita. Antaranya, keylogger rangkaian ialah alat serangan penggodam yang sangat cekap yang mencuri maklumat sensitif seperti kata laluan akaun pengguna dengan merekod input pengguna, menimbulkan ancaman kepada privasi dan harta peribadi. Oleh itu, cara berkesan menghalang keylogger rangkaian telah menjadi cabaran penting yang dihadapi oleh kami pengguna Internet. Artikel ini akan memperkenalkan anda kepada beberapa cara untuk mengelak daripada menjadi mangsa kepada keylogger dalam talian. Kemas kini sistem pengendalian dan keylogger rangkaian perisian secara kerap dan banyak lagi

Beberapa cadangan untuk kemas kini keselamatan Nginx Beberapa cadangan untuk kemas kini keselamatan Nginx Jun 10, 2023 am 11:03 AM

Nginx ialah pelayan web yang digunakan secara meluas dan pelayan proksi terbalik dengan struktur modular berskala dan kelebihan prestasi yang cekap. Walau bagaimanapun, sama seperti perisian lain, Nginx mungkin mempunyai kelemahan keselamatan. Untuk melindungi keselamatan laman web, kemas kini keselamatan Nginx adalah sangat penting. Artikel ini akan memperkenalkan beberapa pengesyoran kemas kini keselamatan untuk Nginx. Kemas kini Nginx dengan kerap Seperti mana-mana perisian, kemas kini adalah penting. Terutama untuk pelayan web dan pelayan proksi terbalik seperti Nginx, jika

Apakah itu AMD Secure Processor? Apakah itu AMD Secure Processor? Jun 11, 2023 pm 12:15 PM

AMDSecureProcessor merujuk kepada pemproses bersama yang digunakan untuk meningkatkan keselamatan sistem komputer. Teknologi ini dibangunkan oleh AMD, pengeluar semikonduktor yang terkenal di dunia, untuk menyediakan langkah perlindungan keselamatan sistem yang lebih kukuh. AMDSecureProcessor dilaksanakan dengan menyepadukan pemproses keselamatan ke dalam pemproses utama Pemproses keselamatan direka untuk melaksanakan tugas pengkomputeran berkaitan keselamatan dan mempunyai memori dan storan bebasnya sendiri, yang diasingkan daripada pemproses utama. Pengenalan coprocessor ini

Penyelidikan tentang keselamatan pembayaran WeChat Penyelidikan tentang keselamatan pembayaran WeChat Jun 11, 2023 am 08:57 AM

Dengan populariti pembayaran elektronik, orang ramai semakin bergantung pada platform pembayaran mudah alih seperti Alipay atau WeChat Pay. Platform ini menyediakan pengguna dan peniaga kaedah pembayaran yang mudah dan pantas, tetapi pada masa yang sama, keselamatan platform berkaitan dengan keselamatan aset dan maklumat peribadi pengguna. Dalam artikel ini, kami akan meneroka keselamatan WeChat Pay untuk menilai prestasinya dalam melindungi maklumat peribadi pengguna dan keselamatan akaun. Pertama, kita perlu memahami mekanisme keselamatan dalam pembayaran WeChat. WeChat Pay mematuhi PCI-DSS (PaymentCard

See all articles