关于PHP安全编程的一些建议
简介
要提供互联网服务,当你在开发代码的时候必须时刻保持安全意识。可能大部分 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
新手程序员觉得注册全局变量很方便,但他们不会意识到这个设置有多么危险。一个启用了全局变量的服务器会自动为全局变量赋任何形式的参数。为了了解它如何工作以及为什么有危险,让我们来看一个例子。
假设你有一个称为 process.php
的脚本,它会向你的数据库插入表单数据。初始的表单像下面这样:
<input name="username" type="text" size="15" maxlength="64">
运行 process.php
的时候,启用了注册全局变量的 PHP 会将该参数赋值到 $username
变量。这会比通过$_POST['username']
或 $_GET['username']
访问它节省击键次数。不幸的是,这也会给你留下安全问题,因为 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; } ?>
这个故事的寓意是,你应该从预定义的服务器变量中获取表单数据。所有通过 post 表单传递到你 web 页面的数据都会自动保存到一个称为 $_POST
的大数组中,所有的 GET 数据都保存在 $_GET
大数组中。文件上传信息保存在一个称为 $_FILES
的特殊数据中。另外,还有一个称为 $_REQUEST
的复合变量。
要从一个 POST 方法表单中访问username字段,可以使用 $_POST['username']
。如果 username 在 URL 中就使用$_GET['username']
。如果你不确定值来自哪里,用 $_REQUEST['username']
。
<?php $post_value = $_POST['post_value']; $get_value = $_GET['get_value']; $some_variable = $_REQUEST['some_value']; ?>
$_REQUEST
是 $_GET
、$_POST
、和 $_COOKIE
数组的结合。如果你有两个或多个值有相同的参数名称,注意 PHP 会使用哪个。默认的顺序是 cookie
、POST
、然后是 GET
。
以上就是为大家整理的一些编程安全建议。更过相关问题请访问PHP中文网:https://www.php.cn/
Atas ialah kandungan terperinci 关于PHP安全编程的一些建议. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Alat AI Hot

Undresser.AI Undress
Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover
Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool
Gambar buka pakaian secara percuma

Clothoff.io
Penyingkiran pakaian AI

AI Hentai Generator
Menjana ai hentai secara percuma.

Artikel Panas

Alat panas

Notepad++7.3.1
Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina
Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1
Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6
Alat pembangunan web visual

SublimeText3 versi Mac
Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Topik panas



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

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

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.

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

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

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

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

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
