ฉันต้องการปิดการใช้งานโมดูลตัวกรอง PHP บนเว็บไซต์ขนาดใหญ่ แต่ต้องผ่านทุกโหนดบล็อกและสาขาอื่น ๆ ที่คุณสามารถใช้ตัวกรอง php ที่เป็นไปได้
มีวิธีหรือวิธีการง่ายๆโดยใช้คำสั่ง SQL เพื่อค้นหาว่าตัวกรอง php ถูกนำไปใช้ในเว็บไซต์ของฉันหรือไม่?
ฉันต้องการปิดการใช้งานโมดูลตัวกรอง PHP บนเว็บไซต์ขนาดใหญ่ แต่ต้องผ่านทุกโหนดบล็อกและสาขาอื่น ๆ ที่คุณสามารถใช้ตัวกรอง php ที่เป็นไปได้
มีวิธีหรือวิธีการง่ายๆโดยใช้คำสั่ง SQL เพื่อค้นหาว่าตัวกรอง php ถูกนำไปใช้ในเว็บไซต์ของฉันหรือไม่?
คำตอบ:
แทนที่จะติดตั้งวงล้อใหม่เพียงแค่ติดตั้งโมดูลตรวจสอบความปลอดภัยซึ่งมีการตรวจสอบต่อไปนี้:
PHP หรือ Javascript ในเนื้อหา (โหนดและข้อคิดเห็นและฟิลด์ใน Drupal 7)
สำหรับบล็อกคุณสามารถตรวจสอบคอลัมน์รูปแบบในตาราง block_custom
สิ่งที่ยากคือ Views - ฉันยังไม่พบวิธีที่เชื่อถือได้ในการค้นหา PHP อันหลอกลวงใน Views โดยทางโปรแกรม
คุณสามารถค้นหามุมมองทั้งหมดที่เปิดใช้งาน php ได้โดยเรียกใช้คำสั่งด้านล่างใน MySQL ...
SELECT vv.name , vd.display_options
FROM views_display AS vd
LEFT JOIN views_view AS vv ON vv.vid = vd.vid
WHERE vd.display_options REGEXP '.s:[3]+:"php".*'
ตาราง views_display เก็บข้อมูลนี้ในรูปแบบต่อเนื่อง .... ฉันได้ทดสอบแบบสอบถามข้างต้นทำงานตามที่คาดหวัง .. หวังว่าจะช่วยแก้ปัญหามุมมอง PHP ปริศนาลับสมอง :-)
รหัสจาก Anil Sagar ด้านบนใช้งานได้เมื่อบันทึกมุมมองในฐานข้อมูลเท่านั้น หากมุมมองเป็นรหัสเท่านั้นมันจะไม่ทำงาน ดังนั้นฉันจึงเขียนตัวอย่างเล็กน้อยที่ฉันเรียกใช้เพื่อบันทึกมุมมองทั้งหมดไปยังฐานข้อมูล จากนั้นฉันสามารถใช้ส่วนย่อยของ MySQL เพื่อพื้นผิว PHP
$views = views_get_all_views();
foreach ($views as $view) {
if (empty($view->disabled)) {
$view->save();
drupal_set_message('view saved: ' . check_plain($view->name));
}
}
คำถามเก่า แต่เป็นครั้งแรกในการค้นหาของ Google
มีโมดูล Contrib ที่ควรจะค้นหารายการ PHP ทั้งหมด:
โมดูล 'PHP Finder' ใช้เพื่อค้นหาตำแหน่งที่ใช้รูปแบบตัวกรอง PHP ไม่ว่าจะเป็นในโหนดบล็อกหรือมุมมอง