Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Beberapa kelemahan keselamatan biasa dan kaedah pertahanan pada tapak web PHP

Beberapa kelemahan keselamatan biasa dan kaedah pertahanan pada tapak web PHP

WBOY
WBOYke hadapan
2023-01-05 16:21:164545semak imbas

Artikel ini membawakan anda pengetahuan yang berkaitan tentang PHP terutamanya memperkenalkan beberapa kelemahan keselamatan dan kaedah pertahanan umum tentang tapak web. Saya harap ia akan membantu semua orang.

Beberapa kelemahan keselamatan biasa dan kaedah pertahanan pada tapak web PHP

1. Kelemahan keselamatan tapak web PHP biasa

Berkenaan dengan kelemahan PHP, pada masa ini terdapat lima kelemahan biasa. Ia adalah kelemahan fail Sesi, kelemahan suntikan SQL, kelemahan pelaksanaan arahan skrip, kelemahan pembolehubah global dan kelemahan fail. Berikut adalah pengenalan ringkas kepada setiap kelemahan ini.

1. Kerentanan fail sesi

Serangan sesi ialah salah satu kaedah serangan yang paling biasa digunakan oleh penggodam. Apabila pengguna melawat tapak web tertentu, untuk menghalang pelanggan daripada memasukkan nombor akaun dan kata laluan mereka setiap kali mereka memasuki halaman, PHP menetapkan Sesi dan Kuki untuk memudahkan penggunaan dan akses pengguna.

2. Kerentanan suntikan SQL

Apabila membangunkan tapak web, pengaturcara tidak mempunyai pertimbangan yang komprehensif terhadap data input pengguna atau gagal menapisnya pelayan untuk melaksanakan beberapa maklumat berniat jahat, seperti pertanyaan maklumat pengguna, dsb. Penggodam boleh mendapatkan maklumat yang sepadan berdasarkan keputusan yang dikembalikan oleh program berniat jahat. Ini adalah kelemahan suntikan SQL Yuexingwei.

3. Kerentanan pelaksanaan skrip

Punca biasa kelemahan pelaksanaan skrip ialah pengaturcara menapis parameter URL yang diserahkan oleh pengguna semasa membangunkan tapak web. Kurang biasa, URL yang diserahkan pengguna mungkin mengandungi kod hasad yang membawa kepada serangan skrip merentas tapak. Kerentanan pelaksanaan skrip sering wujud dalam laman web PHP sebelumnya, tetapi dengan peningkatan versi PHP, masalah ini telah dikurangkan atau tidak lagi wujud.

4. Kerentanan pembolehubah global

Pembolehubah dalam PHP tidak perlu diisytiharkan terlebih dahulu apabila digunakan seperti bahasa pembangunan lain digunakan secara langsung tanpa pengisytiharan Sistem secara automatik menciptanya apabila digunakan, dan tidak perlu menentukan jenis pembolehubah Sistem secara automatik akan menentukan jenis pembolehubah berdasarkan konteks. Kaedah ini boleh mengurangkan kebarangkalian pengaturcara membuat kesilapan dalam pengaturcaraan dan sangat mudah digunakan.

5. Kerentanan fail

Kerentanan fail biasanya disebabkan oleh kekurangan penapisan yang mencukupi bagi data yang disediakan secara luaran oleh pembangun tapak web semasa mereka bentuk tapak web. Ini menyebabkan penggodam mengeksploitasi kelemahan untuk melaksanakan arahan yang sepadan pada proses web. Katakan kod ini disertakan dalam lsm.php: include(b./aaa.ph p.), untuk penggodam, ini boleh dilakukan melalui pembolehubah b.”/aaa.php”.), untuk penggodam, ini boleh dilakukan melalui pembolehubah b untuk mencapai serangan jauh, ia boleh menjadi kod penggodam sendiri, digunakan untuk menyerang tapak web. Anda boleh menyerahkan a.php include=http://lZ7.0.0.1/b.php ke pelayan, dan kemudian laksanakan arahan b.php.

2. PHPLangkah-langkah pencegahan untuk kelemahan biasa

1. Menurut analisis, jenis serangan Sesi yang paling biasa ialah rampasan sesi, iaitu, penggodam mendapatkan ID Sesi pengguna melalui pelbagai kaedah serangan, dan kemudian menggunakan identiti pengguna yang diserang untuk log masuk ke laman web yang sepadan. Atas sebab ini, kaedah berikut boleh digunakan untuk menghalangnya: Pertama, tukar ID Sesi secara kerap boleh dicapai dengan menggunakan fungsi PHP sendiri, kedua, tukar nama Sesi adalah PHPSESSID. Pembolehubah ini biasanya disimpan dalam kuki Jika namanya diubah, ia boleh menyekat beberapa serangan oleh penggodam permintaan HTTP. Apabila menggunakan ID Sesi, ID Sesi dihantar menggunakan pautan Mematikan ID Sesi telus boleh dicapai dengan mengendalikan fail PHP.ini yang keempat adalah untuk menghantar parameter tersembunyi melalui URL, yang memastikan bahawa walaupun penggodam memperoleh data sesi, parameter yang berkaitan disembunyikan Ya, sukar juga untuk mendapatkan nilai pembolehubah ID Sesi.

2. Pencegahan kelemahan suntikan SQL

Penggodam mempunyai banyak cara untuk menyuntik SQL, dan mereka fleksibel dan boleh diubah, tetapi suntikan SQL mempunyai biasa Intinya adalah untuk mengeksploitasi kelemahan penapisan input. Oleh itu, untuk mengelakkan suntikan SQL secara asasnya, penyelesaian asas adalah untuk mengukuhkan penapisan arahan permintaan, terutamanya arahan permintaan pertanyaan. Secara khusus, ia termasuk perkara berikut: Pertama, penyataan penapisan diparameterkan, iaitu, input maklumat pengguna direalisasikan melalui penyataan berparameter dan bukannya membenamkan input pengguna secara langsung ke dalam penyataan. Yang kedua ialah menggunakan sesedikit mungkin program tafsiran semasa membangunkan laman web Penggodam sering menggunakan kaedah ini untuk melaksanakan arahan yang menyalahi undang-undang sebanyak mungkin untuk mengelakkan pepijat dalam laman web, jika tidak penggodam boleh menggunakan maklumat ini untuk menyerang tapak web; hanya Ia tidak mencukupi untuk mempertahankan daripada suntikan SQL Selain itu, alat pengimbasan kerentanan profesional mesti kerap digunakan untuk mengimbas kelemahan tapak web.

3. Pencegahan kelemahan pelaksanaan skrip

Cara penggodam menggunakan kelemahan pelaksanaan skrip untuk menyerang adalah pelbagai dan fleksibel Boleh diubah, dalam hal ini mengambil kira, gabungan pelbagai kaedah pencegahan mesti digunakan untuk menghalang penggodam secara berkesan daripada menyerang kelemahan pelaksanaan skrip. Terdapat empat kaedah berikut yang biasa digunakan di sini. Salah satunya ialah pra-menetapkan laluan fail boleh laku. Ini boleh dicapai melalui safe_moade_exec_dir; yang kedua ialah memproses parameter arahan, secara amnya menggunakan fungsi escapeshellarg;

4 Cegah kelemahan pembolehubah global

Berkenaan masalah kelemahan pembolehubah global PHP, versi PHP sebelumnya mengalami masalah sedemikian, tetapi kini Selepas Versi PHP dinaik taraf kepada 5.5, ini boleh dicapai dengan menetapkan php.ini dan menetapkan ruquest_order kepada GPC. Selain itu, dalam fail konfigurasi php.ini, anda boleh menetapkan nilai Boolean untuk Magic_quotes_runtime untuk menambah garis miring ke belakang untuk melimpah aksara dalam data yang disebut secara luaran. Untuk memastikan program laman web boleh dijalankan dalam mana-mana keadaan tetapan pelayan. Anda boleh menggunakan get_magic_quotes_runtime untuk mengesan status tetapan pada permulaan keseluruhan program untuk memutuskan sama ada untuk mengendalikannya secara manual atau menggunakan set_magic_quotes_runtime(0) untuk mematikannya pada permulaan (atau apabila melarikan diri automatik tidak diperlukan).

5. Pencegahan kelemahan fail

Kebocoran fail PHP boleh dicegah dengan menyediakan dan mengkonfigurasi pelayan. Operasi khusus di sini adalah seperti berikut: pertama, matikan gesaan ralat dalam kod PHP, untuk menghalang penggodam daripada mendapatkan maklumat pangkalan data dan laluan fizikal fail halaman web melalui gesaan ralat kedua, tetapkan open_basedir dengan berhati-hati, yang bermaksud melarang operasi fail di luar direktori; Ini boleh melindungi fail tempatan atau fail jauh untuk menghalangnya daripada diserang untuk dilaksanakan. Seragamkan dan larang muat naik fail, yang boleh meningkatkan faktor keselamatan tapak web PHP dengan berkesan. Pembelajaran yang disyorkan: "

Tutorial Video PHP

"

Atas ialah kandungan terperinci Beberapa kelemahan keselamatan biasa dan kaedah pertahanan pada tapak web PHP. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Artikel ini dikembalikan pada:juejin.im. Jika ada pelanggaran, sila hubungi admin@php.cn Padam