PDA

View Full Version : پیاده سازی روش brute force



forestasphalt
یک شنبه 21 مهر 1392, 07:51 صبح
با سلام من کدهای زیر رو برای مقابله با بیش از چند بار سعی و خطا کردن در ورود به بخش لاگین نوشتم



string lockUpdate = "update UserAccountCatalog ";
lockUpdate += "[LastLoginTime]= case when [LoginCount] = 5 then '" + DateTime.Now + "',[Enable] = 'false' end, ";
lockUpdate += "[LoginCount] =case when [LoginCount] = 5 then 0 else " + (loginCount + 1) + " end ";
lockUpdate += "where LTRIM(RTRIM(UPPER(UserName))) = '" + userName.Trim().ToUpper() + "'";
dbConnection.executeNonQuery(lockUpdate);



کد به این صورت هست که اگه LoginCount برابر با 5 بود تاریخ LastBannedTime که همون تاریخ بن شدن هست رو قرار دادم و فیلد Enable که با توجه به اون لاگین میکنم رو false میکنم این قسمت کد به درستی کار میکنه
ولی باید یه قسمتی به کد اضافه بشه که بتونه اگه تاریخ بن شدن مثلا 10 دقیقه ازش گذشته بتونه Enable
رو فعال کنه
ولی هر کوئری نوشتم جواب نداد Enable همیشه true میشه
خواهشا نمونه کدی یا نمونه سایتی رو برام قرار دهید با تشکر

demolition
یک شنبه 21 مهر 1392, 09:22 صبح
با سلام من کدهای زیر رو برای مقابله با بیش از چند بار سعی و خطا کردن در ورود به بخش لاگین نوشتم



string lockUpdate = "update UserAccountCatalog ";
lockUpdate += "[LastLoginTime]= case when [LoginCount] = 5 then '" + DateTime.Now + "',[Enable] = 'false' end, ";
lockUpdate += "[LoginCount] =case when [LoginCount] = 5 then 0 else " + (loginCount + 1) + " end ";
lockUpdate += "where LTRIM(RTRIM(UPPER(UserName))) = '" + userName.Trim().ToUpper() + "'";
dbConnection.executeNonQuery(lockUpdate);



کد به این صورت هست که اگه LoginCount برابر با 5 بود تاریخ LastBannedTime که همون تاریخ بن شدن هست رو قرار دادم و فیلد Enable که با توجه به اون لاگین میکنم رو false میکنم این قسمت کد به درستی کار میکنه
ولی باید یه قسمتی به کد اضافه بشه که بتونه اگه تاریخ بن شدن مثلا 10 دقیقه ازش گذشته بتونه Enable
رو فعال کنه
ولی هر کوئری نوشتم جواب نداد Enable همیشه true میشه
خواهشا نمونه کدی یا نمونه سایتی رو برام قرار دهید با تشکر

اصولا برای جلوگیری از این حملات از Captcha استفاده میکنن

forestasphalt
یک شنبه 21 مهر 1392, 09:27 صبح
با تشکر منم کپچا گذاشتم ولی زوم کردن روی این مورد باید حل بشه!
خود جداول asp.net این امکان دارن

demolition
یک شنبه 21 مهر 1392, 10:02 صبح
با تشکر منم کپچا گذاشتم ولی زوم کردن روی این مورد باید حل بشه!
خود جداول asp.net این امکان دارن

فک کنم این به کارت بیاد

<membership defaultProvider="SqlProvider"
userIsOnlineTimeWindow = "20>
<providers>
<add
name="SqlProvider"
type="System.Web.Security.SqlMembershipProvider"
connectionStringName="SqlServices"
requiresQuestionAndAnswer="true"
maxInvalidPasswordAttempts="5"
passwordAttemptWindow="30"
applicationName="MyApplication" />
</providers>
</membership>

demolition
یک شنبه 21 مهر 1392, 10:04 صبح
passwordAttemptWinddows: بازه زمانی (دقیقه) را مشخص می کند که در خلال آن چند بار کاربر می تواند ورود ناموفق داشته باشد. مقدار پیش فرض آن 10 است.

forestasphalt
یک شنبه 21 مهر 1392, 10:24 صبح
با تشکر این کد (خود جداول asp.net این امکان دارن) رو بیان میکنه که چون جدوله خودم رو دارم رو از ممبر شیب asp استفاده نمیکنم قابل استفاده برام نیست