HTTP攻击与防范PHP安全配置
1什么是安全性
所谓安全性就是保护web应用程序与网页不会受到黑客的攻击。有些黑客纯粹是为了好玩而入侵他人的电脑,但有更多的黑客费劲心思要窃取他人电脑中的机密文件,甚至使整台电脑瘫痪来达到他的目的。现象在网上有很多可以让黑客使用的软件,这些软件多半是免费的而且简单好用,所以一般人要攻击您的电脑,并不是一件非常困难的事情。关键是您对电脑进行了什么样的保护?如果只是安装了查毒软件或者防火墙以为平安无事了,那么您对安全性的真正意义可以说是完全不了解。
2 register global
从PHP4.2.0开始,php.ini的register_global选项的默认值预设为Off。当register_globals设定为On时,您的程序将可以接收来自服务器中的各种环境变量,包括表单提交的变量,而且由于PHP不必事先初始化变量的值,从而导致很大的安全隐患.例如HTML表单的请求变量。由于PHP不需要事先初始化变量的值,这就会更容易写出不安全的代码。这是个很艰难的抉择,但PHP社区还是决定默认关闭此选项。当打开时,人们使用变量时确实不知道变量是哪里来的,只能想当然。但是register_globals的关闭改变了这种代码内部变量和客户端发送的变量混杂在一起的糟糕情况。
3 安全模式
安全模式( safe_mode)是PHP用来限制文档的存取、限制环境变量的存取,以及控制外部程序的执行。
由于网站服务器是以单一系统使用者的模式在运行,因此这个系统的使用者账号必须能够读取每个使用者的文档。这表示在网站服务器上执行的任何代码文档都能够存取每个使用者的文档。PHP的安全模式在多用户的系统上设置一些限制选项来保障程序的安全运行。安全模式只能限制PHP的文档,但是不能限制PHP执行的外部应用程序。因此将可执行的应用程序放置在一个安全的文件夹内,不要让外部用户执行。 启动PHP的安全模式,将php.ini文件的safe_mode选项(directive)设置为On:
safe_mode = On
事例1:
test.php内容如下:
<?php if($authorized){ echo "变量赋值"; }else{ echo "变量没有赋值"; }
当php.ini中的register_globals=Off时
访问网址:http://localhost/test.php?authorized=1
输出结果为:
变量没有赋值。
当php.ini中的register_globals=On时
攻击:
变量未初始化,可以通过url对变量赋值
输出结果为
变量赋值
防护:
变量初始化,阻止通过url对变量赋值进行攻击。
需将代码改为:
<?php $authorized=false; if($authorized){ echo "变量赋值"; }else{ echo "变量没有赋值"; }
事例2:
例如:test.php内容如下:
<?phpif (isset($_SESSION['username'])){ echo "访问者:".$_SESSION['username'];}else{ echo "访问者尚未登陆";}
当访问http://localhost/test.php时,
输出:访问者尚未登陆
攻击:
在网址后面追加?_SESSION[username]=admin
即:http://localhost/test.php?_SESSION[username]=admin
输出:访问者:admin
防护:
session_start()开启session,获取session中的值,阻止通过url对session变量进行注入攻击。
代码改为<?phpsession_start ();if(isset($_SESSION['username'])){ echo "访问者:".$_SESSION['username'];}else{ echo "访问者尚未登陆";}
事例3:
当php.ini中的allow_url_fopen = On时
demo.php中的内容如下:
<?php @include "$path";if(!isset($path)){ echo "文件没有被调用";}
test.php中的内容为:
<?phpecho "this is test.php。文件被调用。";
当访问网址:
http://localhost/demo.php时
输出:文件没有被调用。
攻击:
在链接后面拼接?path=test.php
即:访问http://localhost/demo.php?path=test.php
输出:this is test.php。文件被调用。
保护:
同上对path变量初始化。
注:
可以调用ini_get_all函数来显示 PHP的设定值。
例如:
<?php echo "<pre class="brush:php;toolbar:false">"; print_r(ini_get_all()); echo "
运行结果部分如下:
可以通过
<?phpini_set ("allow_url_fopen",1);
在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



Laravel memudahkan mengendalikan data sesi sementara menggunakan kaedah flash intuitifnya. Ini sesuai untuk memaparkan mesej ringkas, makluman, atau pemberitahuan dalam permohonan anda. Data hanya berterusan untuk permintaan seterusnya secara lalai: $ permintaan-

Pelanjutan URL Pelanggan PHP (CURL) adalah alat yang berkuasa untuk pemaju, membolehkan interaksi lancar dengan pelayan jauh dan API rehat. Dengan memanfaatkan libcurl, perpustakaan pemindahan fail multi-protokol yang dihormati, php curl memudahkan execu yang cekap

Laravel menyediakan sintaks simulasi respons HTTP ringkas, memudahkan ujian interaksi HTTP. Pendekatan ini dengan ketara mengurangkan redundansi kod semasa membuat simulasi ujian anda lebih intuitif. Pelaksanaan asas menyediakan pelbagai jenis pintasan jenis tindak balas: Gunakan Illuminate \ Support \ Facades \ http; Http :: palsu ([ 'Google.com' => 'Hello World', 'github.com' => ['foo' => 'bar'], 'forge.laravel.com' =>

Adakah anda ingin memberikan penyelesaian segera, segera kepada masalah yang paling mendesak pelanggan anda? Sembang langsung membolehkan anda mempunyai perbualan masa nyata dengan pelanggan dan menyelesaikan masalah mereka dengan serta-merta. Ia membolehkan anda memberikan perkhidmatan yang lebih pantas kepada adat anda

Alipay Php ...

Artikel membincangkan pengikatan statik lewat (LSB) dalam PHP, yang diperkenalkan dalam Php 5.3, yang membolehkan resolusi runtime kaedah statik memerlukan lebih banyak warisan yang fleksibel. Isu: LSB vs polimorfisme tradisional; Aplikasi Praktikal LSB dan Potensi Perfo

Artikel ini membincangkan menambah fungsi khusus kepada kerangka kerja, memberi tumpuan kepada pemahaman seni bina, mengenal pasti titik lanjutan, dan amalan terbaik untuk integrasi dan debugging.

Artikel membincangkan ciri -ciri keselamatan penting dalam rangka kerja untuk melindungi daripada kelemahan, termasuk pengesahan input, pengesahan, dan kemas kini tetap.
