برگزیده های پرشین تولز

مسئله امنیتی سایت

tabeez

Registered User
تاریخ عضویت
7 دسامبر 2006
نوشته‌ها
260
لایک‌ها
0
سلام دوستان
سایتم طراحیش تموم شده، فقط میخوام بدونم چطور میتونم خیالم تا حدودی از امنیتش راحت باشه...
یعنی مقاله ای،چزی باشه که نکات امنیتی سایت و ... رو برام یادآوری کنه که قبل از راه اندازی برطرف کنم.
ممنونم
 

Graveworm

Registered User
تاریخ عضویت
23 می 2005
نوشته‌ها
1,071
لایک‌ها
12
محل سکونت
Tehran
سلام دوستان
سایتم طراحیش تموم شده، فقط میخوام بدونم چطور میتونم خیالم تا حدودی از امنیتش راحت باشه...
یعنی مقاله ای،چزی باشه که نکات امنیتی سایت و ... رو برام یادآوری کنه که قبل از راه اندازی برطرف کنم.
ممنونم
منظورت از امنیت رو توضیح بده :دی

امنیت رو من 2 قسمت میدونم، یه قسمت مربوط به شماست و قسمت دیگه مربوط به سرور.

امنیت سرور رو با انتخاب یک هاست خوب و مطمئن میتونی حل کنی.

اما امنیت برنامه ای که شما نوشتی...
خوب سایتت چیا داره ؟ چیا نداره ؟

به طور کلی وقتی با db در ارتباطی، چک کردن مقادیر ورودی توسط کاربر و querystring ها از نون شب هم واجب تره.

بعدش هم encrypt کردن web.config برا عدم دسترسی به connectionstring و خیلی کار های دیگه ..........
 

amin_lili

کاربر تازه وارد
تاریخ عضویت
24 آپریل 2007
نوشته‌ها
532
لایک‌ها
2
سن
43
محل سکونت
ای کاش آنجا ...
خب این خیلی خوبه که آدم به فکر امنیت سایتش باشه اما باید دید این سایت چقدر ممکنه در آینده تحت هجوم هکرها قرار بگیره ! اصلا از لحاظ موضوعی (نه کیفیت پیاده سازی)در حد و اندازه ای است که کسی بخواد هکش کنه ؟! با این اوصاف مواردی که دوستمون Graveworm گفتند مفیده و در ضمن اگه فکر می کنی سایتت خیلی خفنه می تونی سورس برنامه ات رو هم رمزگذاری کنی تا سخت تر بشه به سورس برنامه ات دسترسی داشت ( هرچند خیلی هم سخت نیست) .
 

tabeez

Registered User
تاریخ عضویت
7 دسامبر 2006
نوشته‌ها
260
لایک‌ها
0
منظورم از امنیت، امنیت برنامه خودم هست...
برنامه سایت من، اولین کارم هست و خب در حدی که تونستم روش کار کردم!!(شماها دیگه باید همه چی دستتون باشه با اینهمه سوال...)...
و اما amin عزیز...
من تو شهری هستم که بروبچ ادعا زیاد هست، اینطور بگم اگه قراره بیاد بیرون و فردا اذیت کنم سایتم رو، نیاد بیرون بهتره..
اینه که میخوام خیالم تا حدودی راحت باشه...
سایت من، آرشیو مسنجر ایرانی هست که آیدی مسنجر از تمامی استانهای کشور ثبت میشه اونجا :)
در مورد db هم ، اکسس هست...
من تا حدودی مقادیر رو چک کردم، یعنی مقادیری که درصورت مجاز نبودن ممکن بوده کسی به اطلاعات شخصی دیگران دسترسی پیدا کنن روحتما چک کردم... ولی مQueryString هایی که مثلا برا نمایش پستهای ارسالی اعضا، نمایش نظرات و .. هست رو نه، چک نکردم.اینا رو هم حتما باید چک کنم؟
در Web.config من هیچ ConnectionStringای نیست.چطور Encrypt کنم..
به طور کلی نکاتی که ممکنه امنیت برنامه نویسی سایتم رو به خطر بندازه رو لطفا یادآور شید...
Graveworm و Amin جان، مرسی...، بازم منتظرم..
 

Graveworm

Registered User
تاریخ عضویت
23 می 2005
نوشته‌ها
1,071
لایک‌ها
12
محل سکونت
Tehran
منظورم از امنیت، امنیت برنامه خودم هست...
برنامه سایت من، اولین کارم هست و خب در حدی که تونستم روش کار کردم!!(شماها دیگه باید همه چی دستتون باشه با اینهمه سوال...)...
و اما amin عزیز...
من تو شهری هستم که بروبچ ادعا زیاد هست، اینطور بگم اگه قراره بیاد بیرون و فردا اذیت کنم سایتم رو، نیاد بیرون بهتره..
اینه که میخوام خیالم تا حدودی راحت باشه...
سایت من، آرشیو مسنجر ایرانی هست که آیدی مسنجر از تمامی استانهای کشور ثبت میشه اونجا :)
در مورد db هم ، اکسس هست...
من تا حدودی مقادیر رو چک کردم، یعنی مقادیری که درصورت مجاز نبودن ممکن بوده کسی به اطلاعات شخصی دیگران دسترسی پیدا کنن روحتما چک کردم... ولی مQueryString هایی که مثلا برا نمایش پستهای ارسالی اعضا، نمایش نظرات و .. هست رو نه، چک نکردم.اینا رو هم حتما باید چک کنم؟
در Web.config من هیچ ConnectionStringای نیست.چطور Encrypt کنم..
به طور کلی نکاتی که ممکنه امنیت برنامه نویسی سایتم رو به خطر بندازه رو لطفا یادآور شید...
Graveworm و Amin جان، مرسی...، بازم منتظرم..
connectionstring ها در خود سورس صفحات هست ؟

در مورد questystring ها..
هر مقداری که قراره تو جمله sql تاثیر بذاره باید چک شه.
با اینکه MS گفته، sqlparam ها خودشون injection رو کنترل میکنن. اما باز کار از محکم کاری عیب نمیکنه.
 

tabeez

Registered User
تاریخ عضویت
7 دسامبر 2006
نوشته‌ها
260
لایک‌ها
0
بله دوست عزیزم، یعنی یه ثابت تعریف کردم تو یه کلاس و در کل پروژه استفاده میکنم(برا اینکه تغییر اون راحتتر شه)...
و مقادیری رو هم که توو جمله sql ممکنه تاثیر بگذاره ره با Replace مقادیر "'" رو ازش حذف میکنم و ...
لطفا هنوز اگه نکاتی هست برام اینجا بیارید، خیلی برام مهمه برنامه سایتم امنیت قابل قبولی در حد توانم داشته باشه..
بازم ممنونم و منتظر...
 

Graveworm

Registered User
تاریخ عضویت
23 می 2005
نوشته‌ها
1,071
لایک‌ها
12
محل سکونت
Tehran
بله دوست عزیزم، یعنی یه ثابت تعریف کردم تو یه کلاس و در کل پروژه استفاده میکنم(برا اینکه تغییر اون راحتتر شه)...
و مقادیری رو هم که توو جمله sql ممکنه تاثیر بگذاره ره با Replace مقادیر "'" رو ازش حذف میکنم و ...
لطفا هنوز اگه نکاتی هست برام اینجا بیارید، خیلی برام مهمه برنامه سایتم امنیت قابل قبولی در حد توانم داشته باشه..
بازم ممنونم و منتظر...
از یه هاست خوب استفاده کنین. upload کنین. آدرس بدید اینجا. گروه تفتیش PT میرن سراغش ببینن چیزی هست یا نه :دی
 

tabeez

Registered User
تاریخ عضویت
7 دسامبر 2006
نوشته‌ها
260
لایک‌ها
0
یعنی چی؟
یعنی میرن سراغش و میریزن به هم سایتم رو؟ اذیتش میکنن یا مشکلاتش رو به خوده خودم! میگن؟
 

Graveworm

Registered User
تاریخ عضویت
23 می 2005
نوشته‌ها
1,071
لایک‌ها
12
محل سکونت
Tehran
یعنی چی؟
یعنی میرن سراغش و میریزن به هم سایتم رو؟ اذیتش میکنن یا مشکلاتش رو به خوده خودم! میگن؟
:دی شما حالا upload بکن ..
انقدر نگران نباش
به هر حال چیزی هم بشه، باعث کسب تجربه برا دفعات بعدی میشه ;)
 

alireza sh

مدیر بازنشسته
تاریخ عضویت
2 ژانویه 2006
نوشته‌ها
2,775
لایک‌ها
70
سن
40
محل سکونت
نصف جهان
ضمنا ، فرواموش نکنید که برای درج اطلاعات مهم (مانند پسورد و ...) حتما اطلاعات را انکریپت شده داخل دیتابیس درج کنید
 

tabeez

Registered User
تاریخ عضویت
7 دسامبر 2006
نوشته‌ها
260
لایک‌ها
0
بله، از الگوریتمی که خودم برا انکریپت نوشتم برا ذخیره کلمه عبور و ... استفاده میکنم...

مطالب رو میخونم و بازم برمیگردم...
 

tabeez

Registered User
تاریخ عضویت
7 دسامبر 2006
نوشته‌ها
260
لایک‌ها
0
مطالب شما رو همه خوندمف همچنین لینک دوست عزیز mosy...
بازم اگه چیزی هست دوست دارم هرچه بیشتر بخونم و بدونم...
ممنون میشم..
 

fivestar

Registered User
تاریخ عضویت
14 نوامبر 2006
نوشته‌ها
73
لایک‌ها
0
من یه صفحه دارم که قبل از ورود به اون یه صفحه Login گذاشتم. یعنی کاربر هایی که Username و Password درست بدن می تونن وارد شن .

یه پوشه ساختم و صفحه مورد نظر و صفحه Login و web.config رو ریختم توش.

این کد صفحه web.config:

کد:
<?xml version="1.0" encoding="utf-8" ?>

<configuration>

 <appSettings><add key="myConnectionString" value="server=localhost;uid=***;pwd=***;database=***" /></appSettings>

 <location path="MyFolder">

 <system.web>

  <compilation defaultLanguage="c#" debug="true" />

  <customErrors mode="RemoteOnly" />

  <authorization>

              <allow users="Admin"/>

              <deny users="*"/>

   </authorization>

  <trace enabled="false" requestLimit="10" pageOutput="false" traceMode="SortByTime" localOnly="true" />

  <sessionState mode = "SqlServer" stateConnectionString="tcpip=127.0.0.1:45565" sqlConnectionString="data source="SERVERNAME;user id=sa;password='' cookiesless="false" timeout="20"

/>
  <globalization fileEncoding="utf-8" requestEncoding="utf-8" responseEncoding="utf-8" culture="fa-IR" uiCulture="fa-IR" />

 </system.web>

 </location>

</configuration>


تو صفحه login هم موارد زیر رو وارد کردم :


کد:
using System.Configuration;

string connectionString = (string )ConfigurationSettings.AppSettings["myConnectionString"];


حالا وقتی می خوام صفحه Login رو Submit کنم باید مقادیر وارد شده برای Username و Pasword رو خودم چک کنم ؟؟؟ ( با IF)


من از VS 2003 استفاده می کنم و تو Toolbox منوی Login ندارم که بتونم راحت از Object هاش استفاده کنم !
 

alireza sh

مدیر بازنشسته
تاریخ عضویت
2 ژانویه 2006
نوشته‌ها
2,775
لایک‌ها
70
سن
40
محل سکونت
نصف جهان
من بار هم تاکید میکنم

connection strign فقط و فقط داخل web.config و فقط و فقط به صورت انکریپت شده !

امنیت هاست از همه چیز مهم تر است

ضمنا ، من نمیدانم اگر بدنبال امنیت هستید ، چرا از اکسس استفاده میکنید ؟
 

fivestar

Registered User
تاریخ عضویت
14 نوامبر 2006
نوشته‌ها
73
لایک‌ها
0
دیتا بیسم SQL Server هستش. sessionState mode رو تصحیح کردم .

1- تو Web.config مشکلی برای اتصال به دیتا بیس SQL server ندارم ؟؟

2- وقتی می خوام صفحه Login رو Submit کنم باید مقادیر وارد شده برای Username و Pasword رو خودم چک کنم ؟؟؟
 

ma_christian

Registered User
تاریخ عضویت
25 ژانویه 2007
نوشته‌ها
368
لایک‌ها
2
محل سکونت
Tehran
دوستان ببخشید یک مقدار در مورد انکریپت توضیح می دهید که چگونه می توان این کار را انجام داد؟

ببخشید و ممنون
 

mehran.zand

Registered User
تاریخ عضویت
4 ژوئن 2007
نوشته‌ها
318
لایک‌ها
1
ببین دوست من ما سه لایه امنیتی داریم که تشکیل میشه از iis ، لایه worker prccess و در نهایت application که
شما به عنوان برنامه نویسی روی این لایه می تونی تاثیر بگذاری.
بحث امنیت خیلی پیچیده تر از اینه که با چند خط شما برنامه امنی ایجاد کنی . من نفهمیدم شما با asp نوشتی یا asp.net اگر asp.net نوشته باشی من می تونم نکاتی رو یاداور بشم که کمکت کنه.

ولی در کل به بحث SQL injection ها ، بحت authentication، بحث hash کردن اطلاعات توجه کن .
 
بالا