วิธีป้องกันฟอรัมในเอ็นจิ้น phpBB จากการลงทะเบียนอัตโนมัติ วิธีป้องกันฟอรัมในเอ็นจิ้น phpBB จากการลงทะเบียนอัตโนมัติ Bagrets โพสต์โหมด php

กลไกฟอรัม phpBB มีข้อดีมากมาย สะดวกสำหรับทั้งผู้ใช้และผู้ตรวจสอบ และด้วยเหตุนี้จึงได้รับความนิยมอย่างมาก แต่ความนิยมนั้นเองที่ทำให้เกิดข้อเสียเปรียบหลัก - มันถูกสแปมและสแปมโดยอัตโนมัติ หลังจากผ่านไปสักระยะ การลงทะเบียนผู้ใช้ปลอมรายใหม่และข้อความสแปมจากพวกเขาอย่างต่อเนื่องอาจทำให้ผู้ดูแลเว็บไซต์เกิดความกังวลได้

PhpBB เวอร์ชัน 3.* ในแพ็คเกจพื้นฐานประกอบด้วยตัวเลือก captcha มากถึง 4 ตัวเลือกที่สามารถเสนอให้กับผู้ใช้เมื่อลงทะเบียนในฟอรัม มีแม้กระทั่ง รีแคปชาอย่างไรก็ตาม สำหรับผู้ส่งอัตโนมัติ ตามที่แสดงให้เห็นในทางปฏิบัติ นี่ไม่ใช่อุปสรรค

โปรแกรมเหล่านี้รู้ว่าจุดเข้าสู่หน้าลงทะเบียนของเครื่องมือฟอรั่มต่างๆ เป็นอย่างไร ความรู้นี้ขึ้นอยู่กับการจดจำโมเดล DOM ของเว็บเพจที่มีแบบฟอร์มสำหรับการลงทะเบียนผู้ใช้ใหม่ สำหรับการโพสต์ข้อความ และอื่นๆ นั่นคือ ตัวอย่างเช่น ในกรณีของ phpBB หุ่นยนต์รู้ว่าจุดเริ่มต้นสำหรับการลงทะเบียนอยู่ที่ /ucp.php?mode=register และในหน้านี้จะมีปุ่มดังนี้:

โดยไม่ต้องลงรายละเอียดทางเทคนิค ฉันจะทราบว่าคุณสามารถค้นหาและคลิกปุ่มนี้ในเอกสาร HTML อย่างน้อยก็ตามรหัสหรือชื่อ

ทันทีที่โรบอตไปถึงหน้าที่มีแคปต์ชา มันจะได้รับรูปภาพแคปต์ชาและพยายามจดจำมัน สามารถใช้เทคโนโลยีต่างๆ ได้ที่นี่ ขึ้นอยู่กับความซับซ้อนของโปรแกรม ตั้งแต่อัลกอริธึม OCR ไปจนถึงการจดจำแคปต์ชาอย่างง่ายโดยบุคคลที่มีชีวิต นี่คือสาเหตุที่การป้องกันไม่ทำงาน การแบนที่อยู่ IP บนฟอรัมก็ไม่มีประโยชน์เช่นกัน เนื่องจากโรบ็อตส่งสแปมผ่านพร็อกซีเซิร์ฟเวอร์จำนวนมาก ในแง่นี้ การแบนที่อยู่หรือล้างการลงทะเบียนอัตโนมัติใหม่ก็ไม่ต่างอะไรกับการเสียเวลาทั้งสิ้น

ปรากฎว่าวิธีเดียวที่จะตัดผู้ส่งอัตโนมัติคือการปรับเปลี่ยนมาร์กอัปของจุดเข้าสู่ฟอรัมเล็กน้อยในลักษณะเฉพาะ สองหรือสามปีที่แล้ว ฉันทำเคล็ดลับนี้กับ phpBB2 และได้ผล - การลงทะเบียนอัตโนมัติหยุดลง สิ่งเดียวกันนี้ได้รับการยืนยันเมื่อเร็ว ๆ นี้ในเว็บไซต์อื่นซึ่งมีอยู่ในเอ็นจิ้น phpBB3 แล้ว

ต่อไป ฉันจะยกตัวอย่างการแก้ไขหน้าการลงทะเบียน phpBB ที่ได้รับการพิสูจน์แล้วโดยเฉพาะ อย่างไรก็ตาม ฉันขอยืนยันว่าโพสต์นี้มีแนวคิดในการป้องกันการลงทะเบียนอัตโนมัติบนฟอรัม ไม่ใช่วิธีการเฉพาะเจาะจง ทุกอย่างขึ้นอยู่กับมือและหัวหน้าผู้ดูแลฟอรัม ขอแนะนำให้มีความรู้พื้นฐานเกี่ยวกับ html และ css หากผู้อ่านเริ่มคัดลอกวิธีนี้เป็นจำนวนมาก ผู้ส่งอีเมลขยะจะตั้งโปรแกรม "ฮิวริสติก" นี้ลงในซอฟต์แวร์ของตน และการลงทะเบียนอัตโนมัติจะดำเนินต่อไป

ดังนั้นในการตั้งค่าฟอรัม phpBB ให้เลือก captcha ที่ง่ายที่สุด "CAPTHA ที่ไม่มี GD"
ดูเหมือนว่านี้ในเบราว์เซอร์ (FF3):

หากคุณดูที่มาร์กอัปของหน้าการลงทะเบียนในพื้นที่ของภาพแคปต์ชาจะมีลักษณะดังนี้:

ที่จริงแล้วแอตทริบิวต์ src ในแท็ก img มีรูปภาพที่มี captcha เปิดโฟลเดอร์ที่มีหัวข้อปัจจุบันติดตั้งอยู่ในฟอรัม ในกรณีของฉันคือ prosilver: /forum/styles/prosilver/template ในนั้นเราจะพบไฟล์ captcha_default.html หากคุณดูเทมเพลตนี้ คุณจะเห็นตำแหน่งที่มีการสร้างมาร์กอัปด้านบน:

มาทำให้ชีวิตยากขึ้นสำหรับผู้ส่งอัตโนมัติด้วยท่าทางเล็กน้อย:

ตอนนี้จะมีลักษณะเช่นนี้ในเบราว์เซอร์:

ยอมรับว่าไม่ค่อยดีนัก แต่ตอนนี้ ความกังวลใจของแอดมินจะดีขึ้นแล้ว ผู้ใช้ทั่วไปยังสามารถลงทะเบียนได้ แน่นอนว่าเมื่ออัพเกรดเครื่องยนต์เป็นเวอร์ชั่นใหม่ คุณจะต้องจำไว้ว่าต้องทำการแก้ไขนี้อีกครั้ง ฉันหวังว่าผู้ใช้ phpbb ที่กล้าหาญจะไม่ยึดติดกับตัวอย่างนี้ แต่จะคิดหาวิธีอื่นในการเปลี่ยนจุดเริ่มต้นตามแนวคิดด้านความปลอดภัยที่เสนอ

กำหนดว่าจะอนุญาตให้ป้อนแบบฟอร์มแบบสั้นหรือไม่ ( ) แท็ก PHP หากคุณต้องการใช้ PHP ร่วมกับ XML คุณสามารถปิดการใช้งานตัวเลือกนี้เพื่อใช้งานได้อย่างราบรื่น - มิฉะนั้น คุณสามารถแสดงโดยใช้ PHP ได้ดังนี้: "; ?> - หากตัวเลือกนี้ถูกปิดใช้งาน คุณต้องใช้แท็กเปิด PHP รูปแบบยาว ( ).

ความคิดเห็น:

คำสั่งนี้ยังส่งผลต่อการลดลงอีกด้วย สูงถึง PHP 5.4.0 ซึ่งเหมือนกับรายการ - หากต้องการใช้ทางลัดนี้ จะต้องเปิดใช้งานคำสั่ง short_open_tag ตั้งแต่รายการ PHP เวอร์ชัน 5.4.0

ก็มีอยู่เสมอ asp_tags บูลีนเปิดใช้งานการใช้แท็กสไตล์ ASP นอกเหนือจากแท็กปกติ<%= $value %>- นอกจากนี้ยังใช้กับคำย่อสำหรับการแสดงค่าของตัวแปรด้วย- สำหรับข้อมูลเพิ่มเติม โปรดดูส่วนการหลีกเลี่ยง HTML ความแม่นยำ จำนวนเต็ม -1 ทำให้เป็นอนุกรม_แม่นยำ ความแม่นยำ จำนวนของเลขนัยสำคัญที่ต้องคงไว้เมื่อซีเรียลไลซ์ตัวเลขทศนิยม -1 หมายความว่าจะใช้อัลกอริธึมขั้นสูงเพื่อปัดเศษตัวเลขดังกล่าว y2k_compliance asp_tags การเปิดใช้งานความเข้ากันได้ในปี 2000 (จะสร้างปัญหากับเบราว์เซอร์ที่เข้ากันไม่ได้) Allow_call_time_pass_reference asp_tags

จะแสดงคำเตือนหรือไม่หากอาร์กิวเมนต์ถูกส่งผ่านโดยการอ้างอิงเมื่อเรียกใช้ฟังก์ชัน ขอแนะนำให้ระบุอาร์กิวเมนต์ที่ส่งผ่านโดยการอ้างอิงในการประกาศฟังก์ชัน ลองปิดตัวเลือกนี้และตรวจสอบให้แน่ใจว่าสคริปต์ของคุณทำงานอย่างถูกต้องหากไม่มีตัวเลือกนี้ และสคริปต์นั้นจะทำงานกับเวอร์ชันในอนาคตได้ (คุณจะได้รับคำเตือนทุกครั้งที่คุณใช้ตัวเลือกนี้)

การส่งผ่านอาร์กิวเมนต์โดยการอ้างอิงระหว่างการเรียกใช้ฟังก์ชันเลิกใช้แล้วเนื่องจากเหตุผลด้านความสะอาดของโค้ด ฟังก์ชันสามารถเปลี่ยนอาร์กิวเมนต์ของตนด้วยวิธีที่ไม่มีเอกสารประกอบ เว้นแต่อาร์กิวเมนต์จะถูกประกาศให้ส่งผ่านโดยการอ้างอิง เพื่อหลีกเลี่ยงผลข้างเคียง ควรระบุให้ชัดเจนว่าอาร์กิวเมนต์ใดถูกส่งผ่านโดยการอ้างอิงเฉพาะเมื่อมีการประกาศฟังก์ชันเท่านั้น

expose_php asp_tags

แสดงการมีอยู่ของ PHP บนเซิร์ฟเวอร์ รวมถึงการส่งต่อเวอร์ชัน PHP ในส่วนหัว HTTP (เช่น X-Powered-By: PHP/5.3.7) ก่อน PHP 5.5.0 รหัสโลโก้ก็จะแสดงเช่นกัน ดังนั้นเมื่อเพิ่มลงในลิงก์บนเว็บไซต์ PHP โลโก้ที่เกี่ยวข้องก็จะปรากฏขึ้น (เช่น ) การปิดใช้งานตัวเลือกนี้ยังส่งผลต่อเอาท์พุตของฟังก์ชันด้วย phpinfo()

ความคิดเห็น:

ในกรณีนี้ โลโก้ PHP และข้อมูลเกี่ยวกับนักพัฒนาที่เกี่ยวข้องกับการพัฒนา PHP จะไม่แสดง ใน PHP 5.5.0 ตัวระบุโลโก้และฟังก์ชันเหล่านี้ php_logo_guid() การปิดใช้งานตัวเลือกนี้ยังส่งผลต่อเอาท์พุตของฟังก์ชันด้วย.

ถูกลบออกแล้ว ขณะนี้กลไก data URI ถูกใช้เพื่อแสดงโลโก้ ดังนั้นการเพิ่ม ID โลโก้ลงในลิงก์ (เพื่อแสดงโลโก้) จึงใช้งานไม่ได้อีกต่อไป ในทำนองเดียวกัน การปิดตัวเลือก expose_php จะไม่ส่งผลต่อการแสดงโลโก้ PHP ในเอาต์พุตของฟังก์ชันอีกต่อไป ปิดการใช้งาน_ฟังก์ชั่น

เชือก

คำสั่งนี้อนุญาตให้คุณปิดการใช้งานคุณสมบัติบางอย่างด้วยเหตุผลด้านความปลอดภัย ยอมรับรายการชื่อฟังก์ชันที่คั่นด้วยเครื่องหมายจุลภาค Disable_functions ไม่ได้รับผลกระทบจาก Safe Mode

ความสนใจ โอกาสนี้ถูกตั้งค่าสถานะแล้วล้าสมัย และได้ถูกลบออกแล้ว

ใน PHP เวอร์ชัน 5.3.0 ความแม่นยำฮาร์ด_หมดเวลา asp_tags

อนุญาตให้แยกวิเคราะห์ไฟล์ต้นฉบับในการเข้ารหัสแบบหลายไบต์ จำเป็นต้องเปิดใช้งาน zend.multibyte เพื่อใช้การเข้ารหัสอักขระ เช่น SJIS, BIG5 ฯลฯ ที่มีอักขระพิเศษในข้อมูลสตริงแบบหลายไบต์ การเข้ารหัสที่เป็นไปตามมาตรฐาน ISO-8859-1 เช่น UTF-8, EUC ฯลฯ ไม่จำเป็นต้องมีตัวเลือกนี้

การอนุญาต zend.multibyte จำเป็นต้องติดตั้งส่วนขยาย "mbstring"

Zend.script_encoding ปิดการใช้งาน_ฟังก์ชั่น

ค่านี้จะถูกใช้ก็ต่อเมื่อไม่มีคำสั่งการประกาศ(encoding=...) ที่ตอนต้นของสคริปต์ เมื่อใช้การเข้ารหัสที่ไม่เข้ากันกับ ISO-8859-1 คุณต้องใช้ทั้งตัวเลือก zend.multibyte และ zend.script_encoding

สตริงตัวอักษรจะต้องทับศัพท์จาก zend.script_enconding เป็น mbstring.internal_encoding ราวกับว่าถูกเรียก mb_convert_encoding().

Zend.detect_unicode asp_tags

กำหนดว่าจะตรวจสอบ BOM (Byte Order Mark) และความถูกต้องของอักขระหลายไบต์ในไฟล์หรือไม่ การตรวจสอบนี้จะเสร็จสิ้นก่อนที่จะโทร __halt_คอมไพเลอร์()- ใช้ได้เฉพาะในโหมด Zend Multibyte

Zend.signal_check asp_tags

กำหนดว่าควรตรวจสอบตัวจัดการสัญญาณที่ถูกแทนที่เมื่อสคริปต์ยุติหรือไม่

ออก_on_หมดเวลา asp_tags

คำสั่งนี้ใช้สำหรับ Apache1 mod_php เท่านั้น ซึ่งทำให้ลูก Apache ออกหากการเรียกใช้สคริปต์ PHP หมดเวลา การหมดเวลานี้ส่งผลให้เกิดการเรียกภายในไปยัง longjmp() ใน Apache1 ซึ่งทำให้ส่วนขยายบางส่วนมีสถานะไม่สอดคล้องกัน เมื่อกระบวนการเสร็จสมบูรณ์ การล็อคหรือหน่วยความจำที่ยังไม่ได้แก้ไขจะถูกล้าง

ขีดจำกัดทรัพยากร

คำสั่งนี้ระบุจำนวนหน่วยความจำสูงสุด เป็นไบต์ ที่สคริปต์ได้รับอนุญาตให้ใช้ ซึ่งจะช่วยป้องกันสถานการณ์ที่สคริปต์ที่เขียนไม่ดีกินหน่วยความจำที่มีอยู่ทั้งหมดของเซิร์ฟเวอร์ หากต้องการลบข้อจำกัด ให้ตั้งค่าของคำสั่งนี้เป็น -1 .

ในเวอร์ชันก่อน PHP 5.2.1 เพื่อที่จะใช้คำสั่งนี้ จะต้องระบุคำสั่งนี้ในขณะคอมไพล์ ดังนั้น บรรทัดการกำหนดค่าของคุณควรประกอบด้วย: --enable-จำกัดหน่วยความจำ- ตัวเลือกการคอมไพล์นี้จำเป็นต้องใช้ฟังก์ชันต่างๆ ด้วย memory_get_usage()และ memory_get_peak_usage()จนถึงเวอร์ชัน 5.2.1

ถ้าใช้ ความแม่นยำส่วนคำถามที่พบบ่อยนี้

การปรับแต่งประสิทธิภาพ

ความคิดเห็น:

กำหนดขนาดของแคช realpath ที่ใช้ใน PHP ค่านี้ควรเพิ่มขึ้นบนระบบที่ PHP เปิดไฟล์จำนวนมากตามจำนวนการทำงานของไฟล์ที่ดำเนินการ

ขนาดเท่ากับจำนวนไบต์ทั้งหมดที่จัดเก็บไว้ในสตริงเส้นทางบวกกับขนาดของข้อมูลที่เกี่ยวข้องกับองค์ประกอบที่ถูกแคช ซึ่งหมายความว่าหากต้องการจัดเก็บเส้นทางยาวในแคช ขนาดแคชจะต้องใหญ่กว่านี้ ค่านี้ไม่ได้กำหนดจำนวนเส้นทางที่แตกต่างกันที่สามารถแคชได้โดยตรง

ขนาดที่จำเป็นสำหรับการแคชจะแตกต่างกันไปตามระบบ

realpath_cache_ttl ความแม่นยำ

เวลา (เป็นวินาที) ที่จะใช้แคช realpath สำหรับไฟล์หรือไดเร็กทอรีที่ระบุ สำหรับระบบที่ไม่ค่อยมีการเปลี่ยนแปลงไฟล์ ค่านี้สามารถเพิ่มได้

การประมวลผลข้อมูล

ตัวเลือกการกำหนดค่าการประมวลผลข้อมูล
ชื่อ ค่าเริ่มต้น ตำแหน่งของการเปลี่ยนแปลง รายการการเปลี่ยนแปลง
arg_separator.output "&" PHP_INI_ALL
arg_separator.input "&" PHP_INI_PERDIR
ตัวแปร_ลำดับ "เอ็กพีซี" PHP_INI_PERDIR PHP_INI_ALL ใน PHP<= 5.0.5.
ขอ_สั่งซื้อ "" PHP_INI_PERDIR มีให้ตั้งแต่ PHP 5.3.0
auto_globals_jit "1" PHP_INI_PERDIR มีให้ตั้งแต่ PHP 5.0.0
register_globals "0" PHP_INI_PERDIR ลบออกใน PHP 5.4.0
register_argc_argv "1" PHP_INI_PERDIR
register_long_arrays "1" PHP_INI_PERDIR ทำเครื่องหมายว่าเลิกใช้แล้วใน PHP 5.3.0 ลบออกใน PHP 5.4.0
Enable_post_data_reading "1" PHP_INI_PERDIR มีให้ตั้งแต่ PHP 5.4.0
post_max_size "8M" PHP_INI_PERDIR
auto_prepend_file โมฆะ PHP_INI_PERDIR
auto_append_file โมฆะ PHP_INI_PERDIR
default_mimetype "ข้อความ/html" PHP_INI_ALL
default_charset "UTF-8" PHP_INI_ALL ค่าเริ่มต้นคือ "UTF-8" ด้วย PHP >= 5.6.0; ว่างเปล่าสำหรับ PHP< 5.6.0.
Always_populate_raw_post_data "0" PHP_INI_PERDIR ลบออกใน PHP 7.0.0

คำอธิบายสั้น ๆ เกี่ยวกับคำสั่งการกำหนดค่า

ตัวคั่นนี้ใช้ใน URL ของ PHP ที่สร้างขึ้นเป็นตัวคั่นอาร์กิวเมนต์

Arg_separator.input ปิดการใช้งาน_ฟังก์ชั่น

รายการตัวคั่นที่ใช้โดย PHP เพื่อรับตัวแปรจาก URL

ความคิดเห็น:

อักขระทุกตัวในคำสั่งนี้ถือเป็นตัวคั่น!

ตัวแปร_ลำดับ ปิดการใช้งาน_ฟังก์ชั่น

ตั้งค่าลำดับในการประมวลผลตัวแปร EGPCS ( อีสิ่งแวดล้อม, และ เพลงประกอบละคร, โอเค และ เคย). เช่น หากตั้งค่าตัวแปร_ลำดับเป็น "เอสพี"จากนั้น PHP จะสร้าง superglobals $_SERVER และ $_POST แต่จะไม่สร้าง $_ENV, $_GET และ $_COOKIE การตั้งค่าเป็น "" หมายความว่าจะไม่มีการติดตั้ง superglobals

หากเปิดใช้งานคำสั่ง register_globals แบบเดิม Variables_order จะกำหนดลำดับในการส่งออกตัวแปรด้วย อีเอ็นวี, รับ, โพสต์, คุกกี้ล้าสมัย เซิร์ฟเวอร์สู่อวกาศโลก เช่น หากตั้งค่าลำดับของตัวแปรเป็น "เอ็กพีซี", register_globals ถูกเปิดใช้งาน และมีทั้ง $_GET["action"] และ $_POST["action"] ดังนั้นตัวแปร $action จะมีค่าเป็น $_POST["action"] เนื่องจาก ในตัวอย่างของเรา มันมาทีหลัง .

คำสั่งนี้อนุญาตให้คุณปิดการใช้งานคุณสมบัติบางอย่างด้วยเหตุผลด้านความปลอดภัย ยอมรับรายการชื่อฟังก์ชันที่คั่นด้วยเครื่องหมายจุลภาค Disable_functions ไม่ได้รับผลกระทบจาก Safe Mode

ขอ_สั่งซื้อ ปิดการใช้งาน_ฟังก์ชั่น

คำสั่งนี้ควบคุมลำดับที่ PHP เพิ่มตัวแปร GET, POST และ Cookie ให้กับอาร์เรย์ _REQUEST นอกจากนี้จะดำเนินการจากซ้ายไปขวา ค่าใหม่จะแทนที่ค่าเก่า

หากไม่ได้ตั้งค่าของคำสั่งนี้ ค่าของคำสั่ง Variables_order จะใช้สำหรับเนื้อหาของตัวแปร $_REQUEST

โปรดทราบว่าไฟล์ php.ini ที่มาพร้อมกับการแจกจ่ายไม่มีค่า "ค"(คุกกี้)

Auto_globals_jit asp_tags

เมื่อเปิดใช้งาน ตัวแปร SERVER, REQUEST และ ENV จะถูกสร้างขึ้นทันทีที่มีการใช้งานครั้งแรก (ทันเวลาพอดี) แทนที่จะสร้างเมื่อเริ่มเรียกใช้สคริปต์ หากไม่ได้ใช้ตัวแปรเหล่านี้ในสคริปต์ การเปิดใช้งานคำสั่งนี้จะปรับปรุงประสิทธิภาพ

คำสั่งนี้อนุญาตให้คุณปิดการใช้งานคุณสมบัติบางอย่างด้วยเหตุผลด้านความปลอดภัย ยอมรับรายการชื่อฟังก์ชันที่คั่นด้วยเครื่องหมายจุลภาค Disable_functions ไม่ได้รับผลกระทบจาก Safe Mode

การใช้ตัวแปร SERVER, REQUEST และ ENV จะได้รับการตรวจสอบในขณะคอมไพล์ ดังนั้น การใช้ตัวแปรเหล่านี้ร่วมกับตัวแปรต่างๆ จะไม่ทริกเกอร์การเริ่มต้น

Register_globals asp_tags

ไม่ว่าจะลงทะเบียนตัวแปร EGPCS (สภาพแวดล้อม, GET, POST, คุกกี้, เซิร์ฟเวอร์) เป็นตัวแปรร่วมหรือไม่

คำสั่งนี้อนุญาตให้คุณปิดการใช้งานคุณสมบัติบางอย่างด้วยเหตุผลด้านความปลอดภัย ยอมรับรายการชื่อฟังก์ชันที่คั่นด้วยเครื่องหมายจุลภาค Disable_functions ไม่ได้รับผลกระทบจาก Safe Mode

โอกาสนี้ถูกตั้งค่าสถานะแล้วเริ่มต้นด้วย PHP 5.3.0 และเคยเป็น ลบออกใน PHP 5.4.0

Register_argc_argv asp_tags บอก PHP ว่าจะประกาศตัวแปร argv และ argc หรือไม่ (ซึ่งจะมีข้อมูล GET) ดูเพิ่มเติมที่ การใช้ PHP บน Command Line register_long_arrays asp_tags แจ้ง PHP ว่าจะลงทะเบียนตัวแปรที่กำหนดไว้ล่วงหน้าแบบยาวแบบเดิม เช่น $HTTP_*_VARS หรือไม่ หากเปิดใช้งาน (ค่าเริ่มต้น) ตัวแปร PHP ที่กำหนดไว้ล่วงหน้าแบบยาว เช่น $HTTP_GET_VARS จะถูกประกาศ

คำสั่งนี้อนุญาตให้คุณปิดการใช้งานคุณสมบัติบางอย่างด้วยเหตุผลด้านความปลอดภัย ยอมรับรายการชื่อฟังก์ชันที่คั่นด้วยเครื่องหมายจุลภาค Disable_functions ไม่ได้รับผลกระทบจาก Safe Mode

หากคุณไม่ได้ใช้ เราขอแนะนำให้ปิดการใช้งานด้วยเหตุผลด้านประสิทธิภาพ ควรใช้อาร์เรย์ Superglobal เช่น $_GET แทน โอกาสนี้ถูกตั้งค่าสถานะแล้วเริ่มต้นด้วย PHP 5.3.0 และเคยเป็น ลบออกใน PHP 5.4.0

คำสั่งนี้มีให้ใช้งานใน PHP 5.0.0 asp_tags โอกาสนี้ได้ประกาศแล้ว Enable_post_data_readingเมื่อปิดใช้งานตัวเลือกนี้ ตัวแปร superglobal $_POST และ $_FILESพวกเขาจะไม่ ความแม่นยำ เติมให้เต็ม วิธีเดียวที่จะอ่านข้อมูล POST คือการอ่าน wrapper สตรีม php://input ถ้าใช้ ความแม่นยำสิ่งนี้มีประโยชน์เมื่อทำการร้องขอพร็อกซีหรือประมวลผลข้อมูล POST ในลักษณะที่มีประสิทธิภาพของหน่วยความจำมากขึ้น หากขนาดข้อมูล POST มากกว่า post_max_size ตัวแปรซูเปอร์โกลบอล $_POST และ $_FILES จะว่างเปล่า ซึ่งสามารถติดตามได้หลายวิธี เช่น โดยการส่งตัวแปร $_GET ไปยังสคริปต์ที่ประมวลผลข้อมูล เช่น

จากนั้นตรวจสอบว่ามีการตั้งค่าตัวแปร $_GET["processed"] หรือไม่

ความคิดเห็น:

PHP อนุญาตให้ใช้คำย่อค่าไบต์รวมถึง K (กิโล), M (เมกะ) และ G (กิกะ)

PHP จะแปลงคำย่อเหล่านี้ทั้งหมดโดยอัตโนมัติ โปรดใช้ความระมัดระวังเกี่ยวกับการเกินช่วงของค่าจำนวนเต็ม 32 บิต (หากคุณใช้เวอร์ชัน 32 บิต) เนื่องจากจะทำให้สคริปต์ของคุณเกิดข้อผิดพลาด ปิดการใช้งาน_ฟังก์ชั่น

auto_prepend_file ระบุชื่อของไฟล์ที่จะถูกประมวลผลโดยอัตโนมัติก่อนไฟล์หลัก ไฟล์ถูกเรียกราวกับว่ามันถูกรวมไว้โดยใช้ฟังก์ชันจำเป็นต้อง

ดังนั้นจึงใช้ include_path ด้วย ความหมายพิเศษไม่มี

ปิดการใช้งานคำสั่งนี้ ปิดการใช้งาน_ฟังก์ชั่น

Auto_ผนวก_ไฟล์ ระบุชื่อของไฟล์ที่จะถูกประมวลผลโดยอัตโนมัติก่อนไฟล์หลัก ไฟล์ถูกเรียกราวกับว่ามันถูกรวมไว้โดยใช้ฟังก์ชันระบุชื่อของไฟล์ที่จะถูกประมวลผลโดยอัตโนมัติหลังจากไฟล์หลัก ไฟล์ถูกเรียกราวกับว่ามันถูกรวมไว้โดยใช้ฟังก์ชัน

ดังนั้นจึงใช้ include_path ด้วย ความหมายพิเศษไม่มี

ความคิดเห็น: ดังนั้นจึงใช้ include_path ด้วยเช่นกัน หากสคริปต์ออกด้วยออก() ,ต่อท้ายอัตโนมัติไม่

กำลังทำงานอยู่ ปิดการใช้งาน_ฟังก์ชั่น

default_mimetype

ตามค่าเริ่มต้น PHP จะแสดงชื่อการเข้ารหัสในส่วนหัว Content-Type หากคุณไม่จำเป็นต้องผ่านการเข้ารหัส ให้ปล่อยตัวเลือกนี้ว่างไว้

"ประเภทสื่อ" ถูกตั้งค่าเป็น "ข้อความ/html" ตามค่าเริ่มต้น ปิดการใช้งาน_ฟังก์ชั่น

Default_charset ใน PHP 5.6 และใหม่กว่า "UTF-8" เป็นค่าเริ่มต้นและใช้เป็นการเข้ารหัสเริ่มต้นสำหรับฟังก์ชัน, htmlentities() html_entity_decode() และ htmlอักขระพิเศษ()

หากไม่ได้ระบุพารามิเตอร์การเข้ารหัส ค่า default_charset ยังใช้เพื่อระบุการเข้ารหัสดีฟอลต์สำหรับฟังก์ชัน iconv หากไม่ได้ตั้งค่าตัวเลือกคอนฟิกูเรชัน iconv.input_encoding, iconv.output_encoding และ iconv.internal_encoding และสำหรับฟังก์ชัน mbstring หากไม่ได้ตั้งค่า mbstring.http_input mbstring.http_output mbstring.internal_encoding ชุด. PHP ทุกเวอร์ชันใช้ค่านี้เป็นการเข้ารหัสสำหรับส่วนหัว Content-Type มาตรฐานที่ส่งโดย PHP เว้นแต่ส่วนหัวนี้จะถูกแทนที่โดยการเรียกใช้ฟังก์ชัน.

ส่วนหัว() ปิดการใช้งาน_ฟังก์ชั่น

อินพุต_การเข้ารหัส ปิดการใช้งาน_ฟังก์ชั่น

เอาท์พุต_การเข้ารหัส

มีให้ตั้งแต่ PHP 5.6.0 ตัวเลือกนี้ใช้สำหรับโมดูลหลายไบต์ เช่น mbstring และ iconv ค่าเริ่มต้นว่างเปล่า ปิดการใช้งาน_ฟังก์ชั่น

ภายใน_การเข้ารหัส

มีให้ตั้งแต่ PHP 5.6.0 ตัวเลือกนี้ใช้สำหรับโมดูลหลายไบต์ เช่น mbstring และ iconv ค่าเริ่มต้นว่างเปล่า ในกรณีนี้ จะใช้ default_charset Always_populate_raw_post_data

คำสั่งนี้อนุญาตให้คุณปิดการใช้งานคุณสมบัติบางอย่างด้วยเหตุผลด้านความปลอดภัย ยอมรับรายการชื่อฟังก์ชันที่คั่นด้วยเครื่องหมายจุลภาค Disable_functions ไม่ได้รับผลกระทบจาก Safe Mode

ผสม โอกาสนี้ถูกตั้งค่าสถานะแล้วด้วย PHP 5.6.0 และ ลบออกใน PHP 7.0.0

หากติดตั้งใน จริงจากนั้น PHP จะเขียน $HTTP_RAW_POST_DATA ด้วยข้อมูล POST แบบดิบเสมอ

มิฉะนั้น ตัวแปรจะถูกลิงก์เฉพาะเมื่อไม่รู้จักประเภท MIME -1 วิธีที่แนะนำสำหรับการเข้าถึงข้อมูลดิบของ POST คือ php://input และ $HTTP_RAW_POST_DATA เลิกใช้แล้วตั้งแต่ PHP 5.6.0

การตั้งค่า Always_populate_raw_post_data เป็นค่า

ระบุลักษณะการทำงานใหม่ที่จะนำมาใช้ใน PHP เวอร์ชันต่อๆ ไปเมื่อไม่ได้ใช้ $HTTP_RAW_POST_DATA อีกต่อไป
ชื่อ ค่าเริ่มต้น ตำแหน่งของการเปลี่ยนแปลง รายการการเปลี่ยนแปลง
เส้นทางและไดเรกทอรี ตัวเลือกการกำหนดค่าเส้นทางและไดเรกทอรี PHP_INI_ALL
รวม_เส้นทาง โมฆะ PHP_INI_ALL ".;/path/to/php/pear"< 5.3.0
open_basedir โมฆะ PHP_INI_SYSTEM ใน PHP
doc_root โมฆะ PHP_INI_SYSTEM ใน PHP
PHP_INI_SYSTEM "300" PHP_INI_SYSTEM ใน PHP user_dir
user_ini.cache_ttl ใช้งานได้ตั้งแต่ PHP 5.3.0 PHP_INI_SYSTEM ใน PHP user_dir
user_ini.ชื่อไฟล์ ".user.ini" PHP_INI_SYSTEM ใน PHP
extension_dir โมฆะ "/เส้นทาง/ถึง/php"
ส่วนขยาย โมฆะ "/เส้นทาง/ถึง/php"
เฉพาะ php.ini เท่านั้น โมฆะ "/เส้นทาง/ถึง/php" zend_extension
zend_extension_debug โมฆะ "/เส้นทาง/ถึง/php" zend_extension
ใช้งานได้จนถึง PHP 5.3.0 โมฆะ "/เส้นทาง/ถึง/php" zend_extension
zend_extension_debug_ts "1" PHP_INI_SYSTEM ใน PHP zend_extension_ts
cgi.check_shebang_line "0" PHP_INI_SYSTEM ใน PHP มีให้ตั้งแต่ PHP 5.2.0
cgi.discard_path "1" PHP_INI_SYSTEM ใน PHP
มีให้ตั้งแต่ PHP 5.3.0 "1" PHP_INI_SYSTEM ใน PHP cgi.fix_pathinfo
cgi.force_redirect "0" PHP_INI_SYSTEM ใน PHP มีให้ตั้งแต่ PHP 5.2.0
PHP_INI_ALL ก่อน PHP 5.2.1 โมฆะ PHP_INI_SYSTEM ใน PHP cgi.fix_pathinfo
cgi.nph "0" PHP_INI_ALL
cgi.redirect_status_env "0" PHP_INI_SYSTEM ใน PHP cgi.fix_pathinfo
cgi.rfc2616_headers "1" PHP_INI_SYSTEM ใน PHP cgi.fix_pathinfo

คำอธิบายสั้น ๆ เกี่ยวกับคำสั่งการกำหนดค่า

fastcgi.เลียนแบบ ระบุชื่อของไฟล์ที่จะถูกประมวลผลโดยอัตโนมัติก่อนไฟล์หลัก ไฟล์ถูกเรียกราวกับว่ามันถูกรวมไว้โดยใช้ฟังก์ชัน, fastcgi.logging, ระบุรายการไดเร็กทอรีที่ฟังก์ชัน, รวม, โฟเพน()ล้าสมัย ไฟล์()อ่านไฟล์()

file_get_contents() กำลังมองหาไฟล์. รูปแบบเป็นไปตามตัวแปรสภาพแวดล้อมของระบบ PATH: รายการไดเรกทอรีที่คั่นด้วยเครื่องหมายทวิภาคบน Unix หรือเครื่องหมายอัฒภาคบน Windows.

เมื่อค้นหาไฟล์รวม PHP จะดูแต่ละค่าใน include_path แยกกัน

มันจะตรวจสอบพาธแรก หากไม่พบไฟล์ในนั้น มันจะย้ายไปยังพาธถัดไป และต่อไปเรื่อยๆ จนกว่าจะพบไฟล์ที่รวมไว้ หรือส่งคืนคำเตือนหรือข้อผิดพลาด

คุณสามารถเปลี่ยน include_path ของคุณในขณะที่สคริปต์กำลังทำงานโดยใช้ฟังก์ชัน

set_include_path()

ตัวอย่าง #1 include_path บน Unix . include_path=".:/php/includes" ตัวอย่าง #2 include_path บน Windows include_path=".;c:\php\includes"

ความคิดเห็น:

การใช้งาน อีเอ็นวีใน include_path ช่วยให้คุณสามารถระบุพาธสัมพัทธ์สำหรับการรวมไฟล์ เนื่องจากจุดหมายถึงไดเร็กทอรีปัจจุบัน อย่างไรก็ตามจะมีประสิทธิภาพมากกว่าในการใช้งาน รวม "./file"ล้าสมัย กว่าการบังคับให้ PHP ตรวจสอบไดเร็กทอรีปัจจุบันทุกครั้งที่รวมแต่ละไฟล์.

ตัวแปรสภาพแวดล้อม (

ตัวอย่าง #3 การตั้งค่า include_path โดยใช้ตัวแปรสภาพแวดล้อม $(USER) บน Unix

include_path = ".:$(USER)/ลูกแพร์/php"

Open_basedir ปิดการใช้งาน_ฟังก์ชั่น

จำกัดแผนผังไดเร็กทอรีที่ระบุไฟล์ที่สามารถเข้าถึงได้โดย PHP รวมถึงตัวไฟล์ด้วย คำสั่งนี้ ,ต่อท้ายอัตโนมัติได้รับผลกระทบจากเซฟโหมด

เมื่อสคริปต์พยายามเข้าถึงไฟล์ เช่น การใช้ฟังก์ชัน ระบุรายการไดเร็กทอรีที่ฟังก์ชันหรือ จีโซเพน()ตำแหน่งของไฟล์จะถูกตรวจสอบ หากไฟล์อยู่นอกโครงสร้างไดเร็กทอรีที่ระบุ PHP จะปฏิเสธที่จะเปิดมัน ลิงก์สัญลักษณ์ทั้งหมดจะถูกขยาย ดังนั้นจึงไม่สามารถข้ามข้อจำกัดนี้ได้ หากไม่มีไฟล์อยู่ ลิงก์สัญลักษณ์จะไม่สามารถอ่านได้ และชื่อไฟล์ (อ่าน) จะได้รับการพิจารณา รวม_เส้นทาง .

ตัวเลือก รวม_เส้นทางอาจใช้ไม่เพียงกับฟังก์ชั่นสำหรับการทำงานกับระบบไฟล์เท่านั้น ตัวอย่างเช่นถ้า MySQLกำหนดค่าให้ใช้ไดรเวอร์ mysqlnd, ที่ โหลดข้อมูลเข้าแฟ้มตกอยู่ภายใต้ตัวเลือก รวม_เส้นทาง- มีการใช้ฟังก์ชัน PHP มากมายเช่นกัน รวม_เส้นทาง.

ความหมายพิเศษ. บ่งชี้ว่าไดเร็กทอรีการทำงานของสคริปต์จะถูกใช้เป็นไดเร็กทอรีฐาน อย่างไรก็ตาม นี่อาจเป็นอันตรายเล็กน้อยเนื่องจากสามารถเปลี่ยนไดเร็กทอรีสคริปต์ปัจจุบันได้อย่างง่ายดาย.

chdir() รวม_เส้นทางใน httpd.conf สามารถปิดการใช้งานได้ (เช่น สำหรับโฮสต์เสมือนบางตัว) ในลักษณะเดียวกับคำสั่งการกำหนดค่าอื่น ๆ: "".

php_admin_value open_basedir ไม่มี รวม_เส้นทางบน Windows ให้แยกไดเรกทอรีด้วยเครื่องหมายอัฒภาค บนระบบอื่นๆ ทั้งหมด ให้แยกไดเร็กทอรีด้วยเครื่องหมายโคลอน เมื่อทำงานเป็นโมดูล Apache เส้นทาง

ได้รับการสืบทอดจากไดเรกทอรีหลักโดยอัตโนมัติ รวม_เส้นทางกำหนดขีดจำกัดแล้ว เป็นชื่อไดเร็กทอรีตั้งแต่ PHP เวอร์ชัน 5.2.16 และ 5.3.4 เวอร์ชันก่อนหน้าใช้ค่านี้เป็นคำนำหน้า ซึ่งหมายความว่า " open_basedir = /dir/รวม "ยังจะอนุญาตให้เข้าถึง"/dir/รวม " และ "/dir/รวม " หากมีอยู่ หากคุณต้องการจำกัดการเข้าถึงเฉพาะไดเร็กทอรีที่ระบุ ให้เพิ่มเครื่องหมายสแลชต่อท้าย ตัวอย่างเช่น:

open_basedir = /dir/incl/

ความคิดเห็น:

ตามค่าเริ่มต้น ไฟล์ทั้งหมดสามารถเปิดได้ ใน PHP 5.3.0 ค่า open_basedir สามารถทำให้มีข้อจำกัดมากขึ้นในระหว่างการเรียกใช้สคริปต์ ซึ่งหมายความว่าหากตั้งค่า open_basedir เป็น/www/ ใน php.ini จากนั้นสคริปต์สามารถบีบอัดการกำหนดค่าได้/www/tmp/ ที่รันไทม์โดยใช้ ini_set() - เมื่อระบุหลายไดเร็กทอรี คุณสามารถใช้ค่าคงที่ได้ PATH_SEPARATOR

ความคิดเห็น:

การใช้ตัวเลือก open_basedir จะตั้งค่า realpath_cache_size เป็น 0 และด้วยเหตุนี้ จะปิดแคชเรียลพาธ

doc_root ปิดการใช้งาน_ฟังก์ชั่น

PHP "ไดเรกทอรีราก" บนเซิร์ฟเวอร์นี้ ใช้เฉพาะในกรณีที่ไม่ว่างเปล่า หากกำหนดค่า PHP ด้วยเซฟโหมด ไฟล์ที่อยู่นอกไดเร็กทอรีนี้จะไม่ถูกประมวลผล หาก PHP ไม่ได้ถูกคอมไพล์ด้วย FORCE_REDIRECT แสดงว่าคุณควร asp_tags

ตั้งค่า doc_root หากคุณใช้ PHP เป็น CGI ภายใต้เว็บเซิร์ฟเวอร์ใด ๆ (ยกเว้น IIS) อีกทางเลือกหนึ่งคือใช้คำสั่งการกำหนดค่า cgi.force_redirect zend_extension_debug cgi.discard_path

หากได้รับอนุญาต ไบนารี PHP CGI จะสามารถอยู่นอกแผนผังเว็บได้อย่างปลอดภัย และผู้คนจะไม่สามารถข้ามการรักษาความปลอดภัย .htaccess ได้ asp_tags

Cgi.fix_pathinfo ให้การสนับสนุน ถูกต้อง/PATH_INFO PATH_แปลแล้ว PATH_INFOในซีจีไอ ก่อนหน้านี้ PHP เพิ่งถูกติดตั้ง วี SCRIPT_FILENAME ถูกต้องและไม่ได้สนใจ ถูกต้อง- สำหรับข้อมูลเพิ่มเติมเกี่ยวกับ 1 โปรดดูข้อกำหนด CGI การตั้งค่านี้เป็น วีจะบังคับให้ PHP CGI แก้ไขพาธของมันตามข้อกำหนด ค่า 0 สอดคล้องกับลักษณะการทำงานก่อนหน้า ตามค่าเริ่มต้น ตัวเลือกจะถูกเปิดใช้งาน PATH_INFO.

คุณควรแก้ไขสคริปต์ของคุณเพื่อให้ใช้งาน asp_tags

แทน Cgi.force_redirect.

ความคิดเห็น:

จำเป็นต้องมีคำสั่ง cgi.force_redirect เพื่อรับรองความปลอดภัยเมื่อ PHP ทำงานเป็น CGI ภายใต้เว็บเซิร์ฟเวอร์ส่วนใหญ่ หากปล่อยทิ้งไว้โดยไม่ได้กำหนดไว้ PHP จะเปิดใช้งานคำสั่งนี้เป็นค่าเริ่มต้น คุณสามารถปิดได้ ด้วยความเสี่ยงของคุณเองผู้ใช้ Windows: เมื่อใช้ IIS ตัวเลือกนี้

ควร asp_tags

ถูกปิดการใช้งาน สิ่งเดียวกันนี้จำเป็นสำหรับ OmniHTTPD และ Xitami

cgi.nph ปิดการใช้งาน_ฟังก์ชั่น

หากเปิดใช้งาน cgi.nph cgi จะบังคับให้ส่งคืนรหัส 200 ในทุกคำขอ Cgi.redirect_status_envหากเปิดใช้งาน cgi.force_redirect และคุณไม่ได้ใช้งานเว็บเซิร์ฟเวอร์ Apache หรือ Netscape (iPlanet) คุณจะ

ความคิดเห็น:

อาจจะ Cgi.redirect_status_envคุณจะต้องตั้งค่าตัวแปรสภาพแวดล้อมที่ PHP จะมองหาเพื่อให้แน่ใจว่าจะสามารถดำเนินการต่อไปได้ การตั้งค่าตัวแปรนี้.

ทำให้เกิดปัญหาด้านความปลอดภัย ดังนั้น คุณต้องรู้ว่าคุณกำลังทำอะไรอยู่

cgi.rfc2616_headers

หากเปิดใช้งานตัวเลือกนี้และคุณกำลังใช้ PHP ในสภาพแวดล้อม CGI (เช่น PHP-FPM) แทนที่จะใช้ส่วนหัวการตอบกลับ HTTP สไตล์ RFC 2616 คุณควรใช้ RFC 3875 ที่เทียบเท่าแทน เช่น แทน header("HTTP /1.0 404 ไม่พบ"); คุณต้องใช้ส่วนหัว ("สถานะ: 404 ไม่พบ");

ปล่อยไว้ที่ 0 หากคุณไม่แน่ใจว่ามันหมายถึงอะไร

Fastcgi.เลียนแบบ ปิดการใช้งาน_ฟังก์ชั่น

FastCGI ภายใต้ IIS (บนระบบปฏิบัติการที่ใช้ WINNT) รองรับความสามารถในการเลียนแบบสิทธิ์ด้านความปลอดภัยของไคลเอนต์ที่โทร ซึ่งช่วยให้ IIS สามารถกำหนดบริบทด้านความปลอดภัยที่มีการร้องขอได้ mod_fastcgi ภายใต้ Apache ไม่รองรับคุณสมบัตินี้ในปัจจุบัน (03/17/2002)

ตั้งค่าเป็น 1 เมื่อทำงานภายใต้ IIS ค่าเริ่มต้นคือศูนย์

Fastcgi.logging ดังนั้นจะต้องอนุญาตไดเร็กทอรีระบบเริ่มต้นเพื่อให้สามารถดาวน์โหลดไฟล์ได้สำเร็จ

คำสั่งนี้อนุญาตให้คุณปิดการใช้งานคุณสมบัติบางอย่างด้วยเหตุผลด้านความปลอดภัย ยอมรับรายการชื่อฟังก์ชันที่คั่นด้วยเครื่องหมายจุลภาค Disable_functions ไม่ได้รับผลกระทบจาก Safe Mode

หากเปิดใช้งาน ฟังก์ชันการเชื่อมต่อฐานข้อมูลที่ใช้ค่าเริ่มต้นจะใช้ค่าเหล่านี้แทนอาร์กิวเมนต์ใดๆ ที่ส่งผ่าน สำหรับค่าเริ่มต้น โปรดดูเอกสารประกอบฟังก์ชันการเชื่อมต่อฐานข้อมูลที่เหมาะสม ลบออกตัวเลือกนี้

ใน PHP 7.2.0

คำอธิบายสั้น ๆ เกี่ยวกับคำสั่งการกำหนดค่า

การตั้งค่าพิเศษสำหรับ Windows OS

เมื่อเปิดใช้งานคำสั่งนี้ คำเตือน Windows CRT จะปรากฏขึ้น

คำเตือนเหล่านี้ก่อนหน้านี้แสดงเป็นค่าเริ่มต้นก่อน PHP 5.4.0

คุณสามารถเลือกเวอร์ชันของ PHP ที่จะใช้กับบัญชีโฮสติ้งของคุณได้ ด้วยการใช้ส่วนประกอบพิเศษ คุณสามารถเลือกไม่เพียงแต่เวอร์ชัน PHP แต่ยังรวมถึงชุดโมดูลสำหรับบัญชีของคุณด้วย การเลือกเวอร์ชัน PHPในการดำเนินการนี้ คุณต้องไปที่บัญชี cPanel ของคุณ จากนั้นเลือกส่วน "" > ไปที่เมนู " เลือกเวอร์ชัน PHP"> เลือกเวอร์ชัน PHP ที่ต้องการจากรายการแบบเลื่อนลงแล้วคลิกที่ปุ่ม "

ตั้งเป็นปัจจุบัน

- โปรดทราบว่าการตั้งค่านี้จะมีผลกับบัญชีโฮสติ้งทั้งหมดทันที และเวอร์ชันที่ต่างกันไม่สามารถใช้กับไซต์ต่างๆ ได้

PHP เวอร์ชันต่อไปนี้สามารถใช้ได้: 4.4.x, 5.1.x - 5.6.x., 7.0.x - 7.3.x หากคุณต้องการติดตั้ง PHP เวอร์ชันอื่นสำหรับไซต์อื่นในบัญชีของคุณ ไฟล์ .htaccess ที่มีบรรทัดใดบรรทัดหนึ่งต่อไปนี้จะถูกเพิ่มลงในไดเร็กทอรีพร้อมไฟล์ของไซต์ที่ต้องการ: # สำหรับ PHP เวอร์ชัน 7.0 แอปพลิเคชัน SetHandler/x-httpd-alt-php70

# สำหรับ PHP เวอร์ชัน 5.3

แอปพลิเคชัน SetHandler/x-httpd-alt-php53

คุณสามารถเปิดหรือปิดการใช้งานส่วนขยาย PHP บางอย่างสำหรับบัญชีของคุณได้อย่างอิสระ ในการดำเนินการนี้ คุณต้องไปที่บัญชี cPanel ของคุณ จากนั้นเลือกส่วน “ ซอฟต์แวร์และบริการ"> ไปที่เมนู " การเลือกเวอร์ชัน PHP»> ในหน้าที่เปิดขึ้นมาจะมีรายการส่วนขยายที่ใช้ได้ทั้งหมด คุณสามารถเลือกส่วนขยายที่ต้องการแล้วคลิกบันทึกที่ด้านล่างของหน้า

เกี่ยวกับคำสั่ง คุณต้องไปที่บัญชี cPanel ของคุณ จากนั้นเลือกส่วน “ ซอฟต์แวร์และบริการ"> ไปที่เมนู " การเลือกเวอร์ชัน PHP» > « สลับไปใช้ตัวเลือก PHP"และระบุค่าที่จำเป็นสำหรับพารามิเตอร์ต่อไปนี้ (การเปลี่ยนแปลงเหล่านี้จะเกี่ยวข้องกับการอัพเดตไฟล์ /etc/php.ini):

Allow_url_fopen
display_errors
ข้อผิดพลาด_การรายงาน
file_uploads
เส้นทางและไดเรกทอรี
log_errors
mail.force_extra_parameters
สูงสุด_execution_time
max_input_time
max_input_vars
หน่วยความจำ_ขีดจำกัด
รวม_เส้นทาง
post_max_size
เซสชั่น.save_path
short_open_tag
suhosin.post.max_vars
suhosin.request.max_vars
upload_max_ขนาดไฟล์
upload_tmp_dir

หากคุณต้องการโหลดคำสั่ง PHP อื่นๆ มากเกินไป คุณจะต้องใช้ไฟล์ php.ini ในเครื่อง หากต้องการใช้งาน คุณต้องสร้างไฟล์นี้ด้วยการตั้งค่า PHP ที่จำเป็นในโฟลเดอร์ที่มีสคริปต์ PHP ของคุณ ตัวอย่างเช่น หากจำเป็นต้องเปลี่ยนพารามิเตอร์ “upload_max_filesize”, “register_globals” ฯลฯ สำหรับสคริปต์ตัวใดตัวหนึ่งของคุณใน public_html ในโฟลเดอร์ของสคริปต์ที่ควรใช้การตั้งค่าเหล่านี้ คุณจะต้องสร้างไฟล์ เรียกว่า “php.ini” โดยมีเนื้อหาดังนี้


upload_max_filesize = 128M
หน่วยความจำ_จำกัด = 168M
สูงสุด_execution_time= 60
สูงสุด_อินพุต_เวลา = 120
post_max_size = 32ม
register_globals = เปิด

นอกเหนือจากที่กล่าวมาข้างต้น คุณยังสามารถปรับพารามิเตอร์ต่อไปนี้ได้ด้วย:

Allow_url_fopen
display_errors
ข้อผิดพลาด_การรายงาน
file_uploads
เส้นทางและไดเรกทอรี
log_errors
magic_quotes_gpc
mail.force_extra_parameters
max_input_vars
รวม_เส้นทาง
เซฟ_โหมด
safe_mode_exec_dir
safe_mode_include_dir
เซสชั่น.save_path
short_open_tag
suhosin.get.max_value_length
suhosin.post.max_vars
suhosin.request.max_varname_length
suhosin.request.max_vars

โปรดทราบว่าเนื้อหาของไฟล์ php.ini นี้จะถูกนำไปใช้กับไฟล์ php ในไดเรกทอรีที่ไฟล์นั้นถูกสร้างขึ้นเท่านั้น นั่นคือหากไดเร็กทอรีที่มีไฟล์ php.ini อยู่นั้น นอกเหนือจากไฟล์ php แล้ว ยังมีไดเร็กทอรีที่มีไฟล์ php ของตัวเองอยู่ข้างในด้วย การกระทำของ php.ini จะไม่มีผลกับไดเร็กทอรีเหล่านั้น เพื่อให้บรรลุผลตรงกันข้าม (ในทางเทคนิคคือการใช้คำสั่งจาก php.ini แบบเรียกซ้ำ) คุณจะต้องเพิ่มบรรทัดต่อไปนี้ลงในไฟล์ .htaccess ของไดเร็กทอรีที่มีไฟล์ php.ini อยู่: SetEnv PHPRC<прямой полный путь к php.ini файлу>หลังจากนี้ ผลกระทบของไฟล์ php.ini ที่ระบุจะมีผลกับไฟล์ php ในไดเร็กทอรีที่อยู่ภายในไดเร็กทอรีซึ่งมีไฟล์ php.ini ที่ระบุอยู่ด้วย

คุณสามารถอ่านเพิ่มเติมเกี่ยวกับการตั้งค่าเวอร์ชัน PHP และ php.ini ใน cPanel ในเวอร์ชันของเรา

บันทึก:ในการรันสคริปต์บนเซิร์ฟเวอร์โฮสติ้งเสมือนของเรา จะมีการใช้ LiteSpeed ​​​​PHP (LSPHP) นั่นคือไม่จำเป็นต้องให้สิทธิ์ในการเขียนเว็บเซิร์ฟเวอร์ทั้งหมด เช่นเดียวกับที่เกิดขึ้นกับบางไซต์โฮสติ้งที่มี mod_PHP บน Apache

กำลังมองหาบางสิ่งบางอย่างสำหรับเว็บไซต์ของคุณ? ดูข้อเสนอของเรา คุณไม่เพียงแต่สามารถสั่งซื้อโฮสติ้งเสมือนหรือ VPS เท่านั้น แต่ยังประหยัดเงินด้วยการรับโดเมนเป็นของขวัญอีกด้วย ต้องการอิสรภาพและพลังมากขึ้นใช่ไหม? เซิร์ฟเวอร์เฉพาะของเราจะทำให้คุณพอใจด้วยราคาที่เอื้อมถึง