PDA

توجه ! این یک نسخه آرشیو شده می باشد و در این حالت شما عکسی را مشاهده نمی کنید برای مشاهده کامل متن و عکسها بر روی لینک مقابل کلیک کنید : فيلتر نظرات و پينگهای نامناسب



Borna66
12-25-2009, 01:33 AM
فيلتر نظرات و پينگهای نامناسب يكي از بزرگترين مشكلات وبلاگ ها نظرات نامربوط و غير بهداشتي است! كنترل دستي نظرات هم كاري بسيار سخت و وقتگير است به همين خاطر نياز به وجود سيستمي اتوماتيك براي اين مشكل كاملا احساس ميشد.
براي اين حل اين مشكل شخصي به اسم Jay allen (http://www.jayallen.org/) يك Plug in طراحي كرده است به نام mt-blacklist. البته همين طور كه از نام آن پيدا است اين Plug in مربوط به سيستم MT است.
من در اينجا طريقه نصب و استفاده از اين Plug in را توضيح خواهم داد.
نصب:

از اينجا (http://www.jayallen.org/projects/mt-blacklist/) mt-blacklist داونلود كنيد و بعد از باز كردن فايل، فايلها آن را به اين صورت داخل شاخه اي كه MT نصب شده است upload كنيد: (MT_DIR نشان دهند شاخه MT است)

کد:

MT_DIR/mt-blacklist.cgi
MT_DIR/plugins/Blacklist.pl
MT_DIR/extlib/jayallen/Blacklist.pm
MT_DIR/extlib/jayallen/MTBlPing.pm
MT_DIR/extlib/jayallen/MTBlPost.pm

به همه فايلها premission 755 دهيد (به اين صورت كه در برنامه FTP خود روي فايلها راست كليك كنيد و به دنبال گزينه اي با نام "Permissions" يا "Chmod" بگرديد سپس در آنجا شماره 755 را وارد كنيد و اگر به صورت گرافيكي است همه گزينه هاي بالا و پايين و گزينه سمت چپ وسطي را چك بزنيد)
در داخل مرورگر خود آدرس فايل mt-blacklist.cgi را وارد كنيد. فايل در شاخه mt و در كنار فايل mt.cgi قرار دارد. براي مثال اگر براي وارد شدن به mt از آدرس http://domain.com/mt/mt.cgi استفاده ميكنيد اين آدرس را در مرورگر وارد كنيد:

کد:

http://domain.com/mt/mt-blacklist.cgi

وارد صفحه configure شويد و در قسمت MT-Blacklist Master Switch گزينه yes را انتخاب كنيد و دكمه Save configuration را بزنيد.

صفحات mt-blacklist

صفحه configure

Would you like to activate MT-Blacklist: اين بخش مشخص ميكند آيا blacklist mt- فعال باشد يا نه.
What actions would you like MT-Blacklist to take for each weblog: در اين قسمت ميتوانيد مشخص كنيد mt-blacklist روي كدام يك از وبلاگهاي شما عمل كند.
What response would you like to return for denied comments/pings: در اين قسمت ميتوانيد متن خطايي را كه mt-blacklist در هنگام فيلتر كردن نشان ميدهد را سفارشي كنيد.
در اين قسمت ميتوانيد از اين متغيرها استفاده كنيد:

__TYPE__ = نوع خطا (ping يا comment)
__BLACKLIST__ = مشخص ميكند مورد فيلتر شده با كدام يك موارد ليست سياه منطبق است.
__TEXT__ = مشخص ميكند چه كلمه ايي فيلتر شده است.

براي مثال در اين قسمت ميتوانيد از اين پيام استفاده كنيد:
__TYPE__ شما به علت وجود كلمه اي ممنوع در آن ارسال نشد. لطفا كلمه __TEXT__ را حذف كنيد.
Would you like logging of blocked posts: اگر گزينه yes را انتخاب كنيد موارد فيلتر شده در activity log ثبت خواهد شد. ميتوانيد به اين وسيله از طرز عمل اين Plug in مطلع شويد. (براي مشاهده activity log در صفحه اول MT روي View Activity Log كليك كنيد). در activity log ميتوانيد گزارشاتي از اتفاقات رخ داده در سيستم را مشاهده كنيد.
Search & De-spam: در اين قسمت ميتوانيد تنظيمات پيش فرض صفحه De-spam را مشخص كنيد. البته در مواقع لازم ميتوانيد در آن صفحه تنظيمات را عوض كنيد. گزينه هاي ليستي كه در اين قسمت وجود دارد به ترتيب به اين شرح است:

Don't delete the comment/ping or rebuild: نظرات و پينگهي مشكل دار حذف نخواهند شد.
Delete the comment/ping: نظرات و پينگهاي مشكل دار حذف خواهند شد ولي صفحات شامل آن نظرات و پينگها بازسازي نخواهند شد.
Delete the comment/ping and rebuild the entry: نظرات و پينگهاي مشكل دار حذف خواهند شد و صفحاتي كه شامل اين موارد هستند بازسازي خواهند شد. (براي ظاهر شدن حذفيات در وبلاگ بايد صفحات بازسازي شوند)
Delete the comment/ping and rebuild the entry/indexes: دقيقا مثل مورد قبلي با اين تفاوت كه صفحات اصلي هم بازسازي خواهند شد. (براي به روز شدن شمارنده هاي Track back و نظرات كه در صفحه اصلي وجود دارند لازم است صفحه اصلي هم بازسازي شود)

در How deep should search go? ميتوانيد مشخص كنيد در هنگام جستجو براي موارد مشكل دار در چه تعداد از نظرات و پينگها جستجو انجام شود.
Would you like to publish your blacklist on your site after each change?: اگر در اين قسمت yes را انتخاب كنيد ليست سياه شما در سايت منتشر خواهد شد به طوري كه ديگران هم قادر به مشاهده آن خواهند بود.
If yes, enter the full path and filename of the file: در صورتي جواب شما به سوال قبلي مثبت بوده است در اين قسمت ميتوانيد مشخص كنيد ليست سياه در كجا منتشر شود. مكان اين ليست به طور پيشفرض فايل blacklist.txt در ريشه سايت است. (به عنوان مثال mojde.com ريشه اين سايت است) اكثر وبلاگها تنظيمات پيش فرض را عوض نميكنند بنابراين ميتوانيد ليست سياه آنها را مشاهده كنيد.
Restore default settings: در صورت چك زدن گزينه I don't really want... و زدن دكمه Restore Default… كليه تنظيمات و ليست سياه شما حذف خواهد شد.

صفحه De-spam

در اين صفحه ميتوانيد در نظراتي كه قبلا در وبلاگ داده شده است به دنبال موارد مشكل دار بگرديد. به عنوان مثلا اگر به ليست سياه خود موارد جديدي را اضافه كرديد به اين وسيله ميتوانيد نظرات و پينگهاي قبلي كه شامل موارد جديد هستند را پاكسازي كنيد. موارد موجود در اين صفحه به اين شرح هستند:
در فرم بالاي صفحه ميتوانيد تعداد نظرات و پينگهايي كه جستجو ميشود را تائين كنيد و مشخص كنيد جستجو در پينگها انجام شود يا در نظرات. در قسمت بعدي اين فرم با انتخاب Blacklist matches جستجو براي يافتن موارد منطبق با ليست سياه انجام خواهد شد و با انتخاب IP Address جستجو براي يافتن مواردي كه توسط شخصي با يك IP خاص فرستاده شده است انجام خواهد شد. (براي اطلاع از اينكه IP شخص فرستنده يك نظر چيست ابتدا وارد صفحه Edit Entries شويد و در آنجا مطلبي كه نظر براي آن گذاشته شده است را انتخاب كنيد و در صفحه اي كه باز ميشود در قسمت Edit Comments روي نظر مورد نظر خود كليك كنيد)
بعد از كليك روي Search در صورت يافت شدن مواردي كه منطبق با موارد وارد شده باشد در صفحه ليستي ظاهر ميشود شامل موارد زير:

Spam: با تيك زدن اين مورد ميتوانيد مورد يافت شده را حذف كنيد.
Author: نام نويسنده نظر
IP Address: آي پي شخص نظر دهنده (با استفاده از اين مورد ميتوانيد به IP كساني كه اكثرا نظرات مشكل دار ارسال ميكنند پي ببريد و ديگر به آنها اجازه ارسال نظر را ندهيد. براي اين كار به قسمت Weblog config>IP Banning وبلاگ برويد و IP را در آنجا وارد كنيد)
Email: ايميل نظر دهنده
URL: آدرس سايت نظر دهنده
Blacklist entry matched: نشان دهنده موردي از ليست سياه است كه با نظر يافت شده منطبق شده است.
…Posted to … entry: اين بخش يك لينك است كه نام وبلاگ و مطلبي كه نظر براي آن پست شده است را نشان ميدهد و با كليك روي آن وارد بخش ويرايش آن مطلب خواهيد شد.

زير اين ليست چك باكس Rebuild the relevant entries after comment deletion قرار دارد كه با چك زدن آن بعد از حذف شدن نظر مطلب مربوطه بازسازي خواهد شد.
وقتي دكمه Delete checked comments را بزنيد مواردي كه ستون Spam آنها چك خورده حذف خواهد شد.
بعد از حذف صفحه اي ظاهر خواهد شد كه حذف شدن موارد را اطلاع ميدهد. در زير اين صفحه دكمه Click to Inspect and add قرار دارد. با كليك روي اين دكمه به طور اتومايك URL (آدرس اينترنتي) نظرات حذف شده جهت قرار گيري در ليست سياه به صفحه ADD منتقل خواهد شد.
صفحه Add

در اين صفحه ميتوان موارد مورد نظر را به ليست سياه افزود. براي اضافه كردن كلمات به ليست سياه به اين نكات توجه كنيد:

هر مورد بايد در يك خط قرار گيرد.
با اضافه كردن علامت # بعد از هر مورد ميتوانيد توضيحي براي هر مورد بنويسيد.
خطوط خالي و خطوطي كه فقط شامل توضيح باشند ناديده گرفته خواهند شد.
رشته هاي http:// و www. از موارد وارد شده حذف خواهند شد.
موارد وارد شده به بزرگي و كوچكي حروف حساسيت ندارند.

صفحه List

در اين صفحه ميتوانيد موارد موجود در ليست سياه را مشاهده و آنها را حذف كنيد.

در قسمت Quick Add ميتوانيد موردي را به ليست سياه اضافه كنيد. تفاوت اين قسمت با صفحه Add در اين است كه در اين قسمت فقط يك مورد را ميتوانيد اضافه كنيد و همچين اجازه اضافه كردن توضيح را نداريد.
در قسمت Sort by ميتوانيد ليست سياه را مرتب كنيد.
در بخش ليست اين موارد وجود دارد:

info: با كليك روي اين لينك ميتوانيد خصوصيات كلمه مورد نظر را مشاهده كنيد همچنين به اين وسيله ميتوانيد به مورد توضيح اضافه كنيد و توضيح را ويرايش كنيد.
Remove: با استفاده از اين مورد ميتوانيد كلمه را حذف كنيد.


Delete: با چك زدن اين مورد و زدن دكمه Delete checked entries ميتوانيد چند مورد را همزمان حذف كنيد.

بهينه سازي ليست سياه

بطور معمول ليست سياه به خوبي كار نميكند. به عنوان مثلا اگر بخوايم كلمه "خر"! را فيلتر كنيم كلمه هاي آخر، بلاخره، خرداد، خراسان و ... هم فيلتر خواهند شد. براي حل اين مشكل ميتوان يك فاصله در قبل و بعد از كلمه قرار داد تا فقط كلمه "خر" فيلتر شود ولي اين كار موجب ميشود كه اين كلمات در اول و آخر نظرات فيلتر نشوند علاوه بر اين بعضي از نظر دهندگان موذي ممكن است نوشته هاي نا مناسب خود را بدون فاصله وارد كنند و به اين صورت فيلتر را بي اثر كنند!
براي حل اين مشكلات ميتوانيد از اين شيوه كه خودم ابداع كرده ام استفاده كنيد:

کد:

[^y]x[^z]|^x$|^x[^z]|[^y]x$



به جاي x ها كلمه اي كه ميخواهيد فيلتر شود را قرار دهيد. مثلا كلمه "خر"!
به جاي y ها حروفي كه مجاز هستند در اول كلمه قرار بگيرند را وارد كنيد. در اين مثال ما به جاي y حرف "آ" را قرار ميدهيم چون اگر در اول "خر" كلمه "آ" نوشته شود آن را تبديل به "آخر" ميكند. در صورتي كه چندين حرف به اين صورت وجود داشت آنها را بدون فاصله كار هم قرار دهيد.
به جاي z ها حروفي كه مجاز هستند در آخر كلمه قرار بگيرند را قرار دهيد. در اين مثال ما ميتوان در اينجا "دا" را وارد كرد. ("د" براي "خرداد" و "ا" براي "خراسان")

در آخر مثال ما به اين صورت در خواهد آمد:



کد:

[^آ]خر[^اد]|^خر$|^خر[^اد]|[^آ]خر$



(اين خط را در صفحه Add وارد كنيد)
MT-blacklist براي تشخيص كلمه هاي غير مجاز از دستورهاي شرطي Perl استفاده ميكند كه از انعطاف فوق العاده اي برخوردارند. انشاالله در آيند در اين مورد مطالب بيشتري خواهم نوشت.

نكته مهم: به علت اينكه MT-blacklist كد گذاري صفحه را تشخيص نميدهد لازم است خود كد گذاري صفحه را unicode كنيم. براي اين كار ابتدا روي يك جاي خالي از صفحه راست كليك كنيد و چك گزينه encoding>Auto-select را برداريد تا خود به خود كد گذاري صفحه تغيير نكند سپس دوباره روي يك جاي خالي از صفحه راست كليك كنيد و گزينه encoding>unicode (utf-8) را انتخاب كنيد. در صورت عدم انجام اين كار كلمات ممنوعه فيلتر نخواهند شد.
نكنه مهم دوم: براي حروف "ك" و "ي" دو نوع كلمه وجود دارد ( فارسي و عربي) و در نظرسنجي هر كدام ممكن است وارد شود بنابراين هنگام اضافه كردن كلماتي كه داراي اين حروف هستند به ليست سياه لازم است هر دو شكل را وارد كنيد. "ك" و "ک" براي حرف "ك" و "ي" و "ی" براي حرف "ي"
براي مطالعه بيشتر به راهنماي اصلي mt-blacklist (http://www.jayallen.org/projects/mt-blacklist/latest/) و اين مطلب (http://www.lostlord.com/archives/2004/10/comment_spam.html) از وبلاگ خوب LostLord مراجعه نماييد.