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

شروع موضوع توسط tabeez ‏9 جولای 2007 در انجمن asp , ASP.NET

  1. tabeez

    tabeez Registered User

    تاریخ عضویت:
    ‏7 دسامبر 2006
    نوشته ها:
    260
    تشکر شده:
    0
    سلام دوستان
    سایتم طراحیش تموم شده، فقط میخوام بدونم چطور میتونم خیالم تا حدودی از امنیتش راحت باشه...
    یعنی مقاله ای،چزی باشه که نکات امنیتی سایت و ... رو برام یادآوری کنه که قبل از راه اندازی برطرف کنم.
    ممنونم
     
  2. برترین مرکز خرید و فروش وب سایت
  3. Graveworm

    Graveworm Registered User

    تاریخ عضویت:
    ‏23 می 2005
    نوشته ها:
    1,063
    تشکر شده:
    12
    محل سکونت:
    Tehran
    منظورت از امنیت رو توضیح بده :دی

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

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

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

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

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

    amin_lili کاربر تازه وارد

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

    tabeez Registered User

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

    Graveworm Registered User

    تاریخ عضویت:
    ‏23 می 2005
    نوشته ها:
    1,063
    تشکر شده:
    12
    محل سکونت:
    Tehran
    connectionstring ها در خود سورس صفحات هست ؟

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

    tabeez Registered User

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

    Graveworm Registered User

    تاریخ عضویت:
    ‏23 می 2005
    نوشته ها:
    1,063
    تشکر شده:
    12
    محل سکونت:
    Tehran
    از یه هاست خوب استفاده کنین. upload کنین. آدرس بدید اینجا. گروه تفتیش PT میرن سراغش ببینن چیزی هست یا نه :دی
     
  10. tabeez

    tabeez Registered User

    تاریخ عضویت:
    ‏7 دسامبر 2006
    نوشته ها:
    260
    تشکر شده:
    0
    یعنی چی؟
    یعنی میرن سراغش و میریزن به هم سایتم رو؟ اذیتش میکنن یا مشکلاتش رو به خوده خودم! میگن؟
     
  11. Graveworm

    Graveworm Registered User

    تاریخ عضویت:
    ‏23 می 2005
    نوشته ها:
    1,063
    تشکر شده:
    12
    محل سکونت:
    Tehran
    :دی شما حالا upload بکن ..
    انقدر نگران نباش
    به هر حال چیزی هم بشه، باعث کسب تجربه برا دفعات بعدی میشه ;)
     
  12. alireza sh

    alireza sh مدیر بازنشسته

    تاریخ عضویت:
    ‏2 ژانویه 2006
    نوشته ها:
    2,668
    تشکر شده:
    68
    محل سکونت:
    نصف جهان
    ضمنا ، فرواموش نکنید که برای درج اطلاعات مهم (مانند پسورد و ...) حتما اطلاعات را انکریپت شده داخل دیتابیس درج کنید
     
  13. mosyhey1

    mosyhey1 Registered User

    تاریخ عضویت:
    ‏27 جولای 2005
    نوشته ها:
    224
    تشکر شده:
    4
  14. tabeez

    tabeez Registered User

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

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

    tabeez Registered User

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

    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 هاش استفاده کنم !
     
  17. ma_christian

    ma_christian Registered User

    تاریخ عضویت:
    ‏25 ژانویه 2007
    نوشته ها:
    366
    تشکر شده:
    2
    محل سکونت:
    Tehran
    این نوشته خیلی بدردم خورد

    ممنون
     
  18. alireza sh

    alireza sh مدیر بازنشسته

    تاریخ عضویت:
    ‏2 ژانویه 2006
    نوشته ها:
    2,668
    تشکر شده:
    68
    محل سکونت:
    نصف جهان
    من بار هم تاکید میکنم

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

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

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

    fivestar Registered User

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

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

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

    ma_christian Registered User

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

    ببخشید و ممنون
     
  21. mehran.zand

    mehran.zand Registered User

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

    ولی در کل به بحث SQL injection ها ، بحت authentication، بحث hash کردن اطلاعات توجه کن .
     
عسل طبیعی و گرده گل ایرانیavanak  همکاری در فروش