คลิกที่นี่ -->> เปรียบเทียบทำเลและราคาที่ดินวังน้ำเขียวผ่าน GooleMAP | คลิกที่นี้ -->> Upload ภาพหัวข้อ: smf ป้องกันการ post link ในบอร์ด เริ่มหัวข้อโดย: LesCop ที่ 03 กุมภาพันธ์ 2556 23:01:53 ใครที่ใช้บอร์ด SMF หากต้องการให้บุคคลทั่วไปที่ไม่ได้สมัครสมาชิกสามารถโพสได้ ก็คงเจอกับปัญหา spam ที่โพตอัตโนมัติเข้ามาในบอร์ดนะครับ
ส่วนมาก spam จะโพสต์ลิ้งค์เข้ามาด้วย ผมมีวิธีแก้มาให้ลองครับ ซึ่งเป็นการกำหนดว่าหากไม่สมัครเป็นสมาชิกจะไม่สามารถโพตส์ข้อความที่มีลิ้งค์ได้ แต่หาก spam มันฉลาด มันสามารถสมัครสมาชิกเองได้ เราก็ไป Set ในระบบให้สมาชิกตั้งรหัสผ่านที่ยากขึ้น หรือให้สมาชิกยืนยันการสมัครผ่านอีเมลล์ แค่นี้เราก็ป้องกัน spam ได้แล้วครับ มาเริ่มกันเลยครับ การกำหนดว่าหากไม่สมัครเป็นสมาชิกจะไม่สามารถโพตส์ข้อความที่มีลิ้งค์ได้ เข้าไปในไฟล์ ./Sources/Post.php แล้วค้นหา อ้างถึง if (empty($modSettings['guest_post_no_email'])) { if (!isset($_REQUEST['email']) || $_REQUEST['email'] == '') $context['post_error']['no_email'] = true; elseif (preg_match('~^[0-9A-Za-z=_+\-/][0-9A-Za-z=_\'+\-/\.]*@[\w\-]+(\.[\w\-]+)*(\.[\w]{2,6})$~', stripslashes($_REQUEST['email'])) == 0) $context['post_error']['bad_email'] = true; } จากนั้นเพิ่มโค๊ดด้านล่างนี้ใว้ข้างหลังโค๊ดด้านบน โค๊ด: //ป้องกัน Spam และค้นหา อ้างถึง // Now make sure this email address is not banned from posting. isBannedEmail($_POST['email'], 'cannot_post', sprintf($txt['you_are_post_banned'], $txt[28])); เพิ่มโค๊ดข้างล่างนี้หลังโค๊ดด้านบน โค๊ด: // ป้องกัน Spam หลังจากนั้นเข้าไปที่ไฟล์ ./Themes/default/languages/Errors.thai.php เพิ่มโค๊ดข้างล่างนี้เข้าไปในไฟล์ครับ ข้างล่างสุดก่อน ?> โค๊ด: $txt['error_guest_no_link'] = 'ขออภัย บุคคลทั่วไปไม่สามารถโพสลิงค์ได้ กรุณาลงทะเบียน'; เพียงเท่านี้เราก็หมดปัญหาเรื่อง spam อ้างอิง : http://www.justusers.net/forum/index.php?topic=561.0 หัวข้อ: Re: smf ป้องกันการ post link ในบอร์ด เริ่มหัวข้อโดย: LesCop ที่ 03 กุมภาพันธ์ 2556 23:14:59 เจอมาใหม่คับ ขำๆดี
ใช้เทคนิคเดิม คือตรวจดูว่าข้อความที่โพสมีภาษาไทยอยู่ด้วยหรือเปล่า ถ้าไม่ใช่ก็ไม่ให้ผ่าน เหมาะสำหรับคนที่มีเว็บบอร์ด SMF แบบไม่ต้องสมัครสมาชิกก็โพสได้ หรือแบบต้องสมัครสมาชิกก่อนถึงจะโพสได้ (เพราะบางทีแสปมต่างชาติมันก็สมัครมาโพสป่วนบอร์ดได้เหมือนกัน) นำโค้ดด้านล่างไปใส่ในไฟล์ Sources/Post.php แล้วเซฟเป็น UTF-8 อัพโหลดไปทับของเดิมบนโฮส **อยู่ประมาณ บรรทัดที่ 1282 (ใต้บรรทัด // Check the subject and message.) อ้างถึง if(!preg_replace('/[^ก-ฮ]/u','',$_POST['subject'])){ $post_errors[] = 'no_subject'; } if(!preg_replace('/[^ก-ฮ]/u','',$_POST['message'])){ $post_errors[] = 'no_subject'; } หัวข้อ: Re: smf ป้องกันการ post link ในบอร์ด เริ่มหัวข้อโดย: LesCop ที่ 03 กุมภาพันธ์ 2556 23:19:20 แบบนี้ 1 ก็อธิบายง่ายๆครับคือ ตั้งค่าให้บุคคลทั่วไปไม่สามารถโพสกระทู้ได้
แต่ก็ใช่ว่า เดี่ยวนี้ spam จะไม่สามารถสมัครสมาชิกได้นะครับเดี่ยวนี้มันทำได้แล้ว ดังนั้นก็คงต้องไปตั้งค่าให้สมัครยากๆหน่อย เช่นให้ ให้สมาชิกยืนยันตัวเองทาง อีเมล์สะก่อน แน่นอนครับช่วยได้90 % เลยครับ ที่บอกว่า 90 เพราะว่า ผมทำมาหลายเว็บไม่เคยโดน แต่ทีนี้ พึ่งมาโดนก็เว็บนี้แหละครับ มันดันสมัครและ ยืนยันได้ ก็เลยงงเลย แต่ก็แค่ คนเดียว 55+ ตอนนี้ผมเลยปิดรับสมัครไปสำหรับบอร์ดแห่งนี้ เพราะเอาไว้เก็บความรู้ของผม และให้คนอื่นๆมาศึกษาอย่างเดียวก็คงพอครับ แบบที่ 2 การกำหนดให้บุคคลทั่วไปไม่สามารถโพส ข้อความใดๆที่มีลิ้งค์ครับ ดังนั้นหาก spam ก็จะไม่สามารถโพสลิ้งค์ ซึ่งเป็นสิ่งที่พวก spam พวกนี้ต้องการจึงน่าจะสามารถป้องกันได้ในส่วนหนึ่งครับ
คลิกที่นี่ -->> จัดพระของขวัญเข้ารุ่นและพิมพ์ |