PDA

View Full Version : سوال: بدست آوردن مشخصات کامپیوتر برای مقابله با هک شدن



RoostaYeBekr
جمعه 27 آبان 1390, 19:41 عصر
صفحه ای دارم که کاربری خاص ( کامپیوتری خاص ) ، مرتب در آن پیغام های بیخودی می فرستد و بار دیتابیس را بیخودی زیاد می کند .

کدام مشخصات یک کامپیوتر را باید در کدنویسی ام لحاظ کنم تا به محض ورود این کاربر ، صفحه کلید او را قفل کنم ؟

منظورم از مشخصات : مثلا اسم کامپیوتر طرف یا آی پی او

توجه کنید که سایت به سیستم Authentication نیاز ندارد و کاربران بدون ثبت نام می توانند پیام بفرستند . پس کاربران اصلا ID ندارند .

مرسی:تشویق:

fakhravari
جمعه 27 آبان 1390, 21:17 عصر
بله منم یه سوال در مورد این که ایا id مادربورد هم میشه تشخیص داد

Saman Hashemi
شنبه 28 آبان 1390, 09:00 صبح
خودتون جواب گفتید دیگه باید برای افراد عضو این قابلیت لحاظ بشه اونجوری تقریبا کاری نمیشه کرد مگر اینکه با ip یه کارایی کرد...!

davood59
شنبه 28 آبان 1390, 09:13 صبح
مگر اینکه با ip یه کارایی کرد...!
خب همین کار هم جواب میده دیگه، هر چند که Ip ها valid نیستند ولی خب میشه تقریبا بازهم مشخصاتی از طرف مقابل بدست آورد.
میخواستم بپرسم چجوری و با چه دستوری IP طرف رو توی DB ذخیره کنیم؟ اگه اینجوری باشه دوستمون میتونه تا محدوده ای خاص از IP ها رو محدود کنه تا کاربر مورد نظر برای حداقل مدت مشخصی نتونه پیغام بفرسته!
یا یه کار دیگه
میشه IP طرف رو پیدا کرد و اگه دیدیدم داره توی مدت کوتاهی (مثلا کمتر از یک دقیقه) 3 تا پیام و یا درخواست رو می فرسته اونو برای مدت معینی از ارسال پیام محدودش کرد.
الگوریتم خوبی نیست بنظرتون؟

Saman Hashemi
شنبه 28 آبان 1390, 09:16 صبح
مشکل اینجاست که نرم افزارهایی هست که توی چند ثانیه ip شما رو عوض میکنه...!

sasansara
شنبه 28 آبان 1390, 09:19 صبح
راه حل 100 درصد نیست اما... از cookie هم می شه استفاده کرد.

davood59
شنبه 28 آبان 1390, 09:35 صبح
مشکل اینجاست که نرم افزارهایی هست که توی چند ثانیه ip شما رو عوض میکنه...!خب میشه یه کاری کرد!
اسم کامپیوتر طرف رو هم بدست آورد، بعدش نرم افزاری که شما میگید IP رو عوض میکنه، فقط باید بتونه 3 رقم آخر IP رو عوض کنه دیگه! یعنی مثلا اگه IP شرکتی این هست : 37.127.216.95 نرم افزاره فقط باید بتونه دو رقم آخر رو تغییر بده دیگه!
نمیدونم درست میگم یا نه؟ همینجوری عوض میکنه؟
خب اگه اینجوری باشه، میشه 3 مورد اول IP رو با اسم کامپیوتر چک کرد!
ضمنا میشه دستورات بدست آوردن IP و نام کامپیوتر رو اینجا بذارید؟

RoostaYeBekr
شنبه 28 آبان 1390, 10:40 صبح
خب میشه یه کاری کرد!
اسم کامپیوتر طرف رو هم بدست آورد، بعدش نرم افزاری که شما میگید IP رو عوض میکنه، فقط باید بتونه 3 رقم آخر IP رو عوض کنه دیگه! یعنی مثلا اگه IP شرکتی این هست : 37.127.216.95 نرم افزاره فقط باید بتونه دو رقم آخر رو تغییر بده دیگه!
نمیدونم درست میگم یا نه؟ همینجوری عوض میکنه؟
خب اگه اینجوری باشه، میشه 3 مورد اول IP رو با اسم کامپیوتر چک کرد!
ضمنا میشه دستورات بدست آوردن IP و نام کامپیوتر رو اینجا بذارید؟




ListBox1.Items.Add(User.Identity.Name);
ListBox1.Items.Add(" IP = " + HttpContext.Current.Request.UserHostAddress);
ListBox1.Items.Add(" UserHostName = " + HttpContext.Current.Request.UserHostName);
ListBox1.Items.Add(" UserAgent = " + HttpContext.Current.Request.UserAgent);

Saman Hashemi
شنبه 28 آبان 1390, 11:58 صبح
راه حل 100 درصد نیست اما... از cookie هم می شه استفاده کرد.
کسی که قرار هک کنه یا اسپم یا ازین جور حرکتها با کوکی آشنایی داره و راحت پاکش میکنه یا اصلا اجازه ذخیره شدن بهش نمیده...!

اگه IP شرکتی این هست : 37.127.216.95 نرم افزاره فقط باید بتونه دو رقم آخر رو تغییر بده دیگه!
نمیدونم درست میگم یا نه؟ همینجوری عوض میکنه؟
خب اگه اینجوری باشه، میشه 3 مورد اول IP رو با اسم کامپیوتر چک کرد!
وقتی شما اونجوری فیلتر کنید عموما کاربرهای اون range خازج کردید که منطقی نیست...!

بهترین شیوه، نظر دادن و ارسال اطلاعات از سوی افراد عضو و شناسایی شده است...!

davood59
شنبه 28 آبان 1390, 14:10 عصر
دوست عزیز آقا سامان؛
من بعدش گفتم که یه شرط بذاره و با اسم کامپیوتر هم چک کنه که مطابقت داشته باشن!
اینجوری بهتر نیست؟ دیگه نیازی نیست یه range از ip ها رو مسدود کرد!
یا یه زمان مشخص برای هر دو نظر یا پیام ارسالی گذاشت.

بهترین شیوه، نظر دادن و ارسال اطلاعات از سوی افراد عضو و شناسایی شده است...!
خب اگه کسی دوست نداشته باشه که عضو بشه ولی نظر بده چی؟
بعضی سایتها چه کاری می کنن که شما فقط یه بار میتونی رای بدی بدون اینکه عضو بشی! (و حتی با connect شدن دوباره هم نمیتونی نظر بدی!)
امکان اینکه mac کارت شبکه رو ذخیره کنن نیست؟ چون تغییر mac به سختی و تقریبا کار هر کسی نیست که عوض کنه!
در غیر اینصورت حتما باید چند مشخه رو ذخیره کنن دیگه.

Alfred188
شنبه 28 آبان 1390, 14:19 عصر
من برای جلوگیری از ورود های الکی انجام دادم یعنی ip شخص رو دخیره می کردم و بعد بهش اجازه دسترسی نمی دادم ولی بعد متوجه شدم تقریبا هرکی که بخواد از شهر خودمون وارد بشه مسدود می شه آخه تقریبا همه صاحب یه Ip می شن!

Saman Hashemi
شنبه 28 آبان 1390, 14:24 عصر
اینو (http://www.devarticles.com/c/a/JavaScript/Advanced-JavaScript-with-Internet-Explorer-Retrieving-Networking-Configuration-Information/1/)ببینید شاید کمکتون کرد...!

sobhan5968
شنبه 28 آبان 1390, 17:23 عصر
استفاده از تصویر CAPTCHA هم میتونه کمک کنه به نظر من . شما این تصویر رو بذارید اگه متوجه شدین بعد از چند روز ارسال هرزنامه ها تمام شد پس بدونید که یک روبوت بوده در غیر اینصورت یک انسان بیکار داره این کار رو انجام میده .

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

سایتهایی هم که در ان شما بیشتر از یکبار در روز نمیتونید امتیاز بدید یا پیغام بفرستید اکثرا از کوکی استفاده میکنن (این روش برای مکانهایی که کاربر تشخیص هویت نمیشه) در صورتی هم که کاربر عضو بشه و برای سایت شناخته شده راههای بسیار زیادی برای این کار وجود داره که احتمالا دوستان و خود شما بهتر از من اطلاع دارید .

RoostaYeBekr
شنبه 28 آبان 1390, 19:12 عصر
بچه ها ممنون از نظرهاتون . فقط لطفا توجه کنید :


راه حل 100 درصد نیست اما... از cookie هم می شه استفاده کرد.

من به چیچ عنوان نمی خوام از cookie ها استفاده کنم . چون به نظرم استفاده از cookie ها توی این مورد ، اصلا روش امنیتی نیست .


اینو (http://www.devarticles.com/c/a/JavaScript/Advanced-JavaScript-with-Internet-Explorer-Retrieving-Networking-Configuration-Information/1/)ببینید شاید کمکتون کرد...!

ببین نمی دونم چرا این لینکی که معرفی کردید رو هر چی توش می رم ، با یک پیغام خطا مواجه می شم و باز نمی شه .



خب همین کار هم جواب میده دیگه، هر چند که Ip ها valid نیستند ولی خب میشه تقریبا بازهم مشخصاتی از طرف مقابل بدست آورد.
میخواستم بپرسم چجوری و با چه دستوری IP طرف رو توی DB ذخیره کنیم؟ اگه اینجوری باشه دوستمون میتونه تا محدوده ای خاص از IP ها رو محدود کنه تا کاربر مورد نظر برای حداقل مدت مشخصی نتونه پیغام بفرسته!
یا یه کار دیگه
میشه IP طرف رو پیدا کرد و اگه دیدیدم داره توی مدت کوتاهی (مثلا کمتر از یک دقیقه) 3 تا پیام و یا درخواست رو می فرسته اونو برای مدت معینی از ارسال پیام محدودش کرد.
الگوریتم خوبی نیست بنظرتون؟

من مشکلم این نیست که بعد از شناسایی طرف ، چی کار کنم . برای این قضیه راه حل دارم : من یک جدول در دیتابیسم دارم که مشخصات کامپیوترها ( کاربران ) بدسابقه رو مثلا با توجه به IP و نام کامپیوتر آنها و غیره نگهداری می کند . بعد وقتی طرف ، دکمه ی ارسال پیام رو می زنه ، قبل از اینکه پیام به دیتابیس ثبت بشه ، اول چک می کنه ، چنین کامپیوتری بدسابقه هست یا نه . اگر باشه کی بردش رو قفل می کنه و اگر نباشه ، پیام رو در دیتابیس ثبت می کنه .

من مشکلم رو دوباره تکرار می کنم :

چه اطلاعاتی بجز IP و نام کامپیوتر و غیره باید از کامپیوتر کاربر در اون جدولی که گفتم باید ثبت بشه و لطفا طریقه ی بدست آوردنش رو هم بگید .

Saman Hashemi
یک شنبه 29 آبان 1390, 09:40 صبح
این کدهای توی اون صفحه بود حالا این که کار میکنه یا نه نمیدونم...!
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html>
<head>
<title></title>
<meta name="GENERATOR" content="Microsoft Visual Studio .NET 7.1">
<meta name="vs_targetSchema" content="http://schemas.
microsoft.com/intellisense/ie5">
<script id="clientEventHandlersJS" language="javascript">
<!--

function Button1_onclick() {
var locator = new ActiveXObject
"WbemScripting.SWbemLocator");
var service = locator.ConnectServer(".");
var properties = service.ExecQuery("SELECT * FROM Win32_NetworkAdapterConfiguration");
var e = new Enumerator (properties);
document.write("<table border=1>");
dispHeading();
for (;!e.atEnd();e.moveNext ())
{
var p = e.item ();
document.write("<tr>");
document.write("<td>" + p.Caption + "</td>");
document.write("<td>" + p.IPFilterSecurityEnabled + "</td>");
document.write("<td>" + p.IPPortSecurityEnabled + "</td>");
document.write("<td>" + p.IPXAddress + "</td>");
document.write("<td>" + p.IPXEnabled + "</td>");
document.write("<td>" + p.IPXNetworkNumber + "</td>");
document.write("<td>" + p.MACAddress + "</td>");
document.write("<td>" + p.WINSPrimaryServer + "</td>");
document.write("<td>" + p.WINSSecondaryServer + "</td>");
document.write("</tr>");
}
document.write("</table>");
}

function dispHeading()
{
document.write("<thead>");
document.write("<td>Caption</td>");
document.write("<td>IPFilterSecurityEnabled</td>");
document.write("<td>IPPortSecurityEnabled</td>");
document.write("<td>IPXAddress</td>");
document.write("<td>IPXEnabled</td>");
document.write("<td>IPXNetworkNumber</td>");
document.write("<td>MACAddress</td>");
document.write("<td>WINSPrimaryServer</td>");
document.write("<td>WINSSecondaryServer</td>");
document.write("</thead>");
}

//-->
</script>
</head>
<body>
<INPUT id="Button1" type="button" value="Button"
name="Button1" language="javascript" onclick="return Button1_onclick()">
</body>
</html>