none
ASP.NET Security FAQ: วิธีการรักษาความปลอดภัยของ password ใน ASP.NET RRS feed

คำตอบ

  • โดยปกติ Password จะส่งข้อความตรงๆจากฝั่ง client (ไม่ปลอดภัย)

    เพราะ Password ควรจะทำการ encrypt หรือ hash ด้วย JavaScript ก่อนที่จะส่งไปยังฝั่ง server
    ซึ่งการทำ
    encrypt password และ username ได้นั้น แสดงว่าการทำ encrypt password ในฝั่ง client ก็ไม่ปลอดภัยเหมือนกัน

    ข้อแนะนำสำหรับการรักษาความปลอดภัยของ password ระหว่างการ login:

    1. การรักษาความปลอดภัยของ password ในการส่งรหัส แนะนำให้ใช้ Secure Sockets Layers (SSL)

    การรักษาความปลอดภัยของ password ในฝั่ง server เราควรที่จะทำการ hash password ก่อนเก็บไว้ใน database

    ถ้าต้องการใช้ Membership ใน asp.net
    หลังจากที่เรากำหนดค่า
    passwordFormat="Hashed" แล้ว

    Password จะถูกเก็บไว้ใน database เป็น hashed code โดยอัตโนมัติ

    <membership>

    <providers>

    <add

    name="AspNetSqlMembershipProvider"

    type="System.Web.Security.SqlMembershipProvider, ..."

    connectionStringName="LocalSqlServer"

    enablePasswordRetrieval="false"

    enablePasswordReset="true"

    requiresQuestionAndAnswer="true"

    applicationName="/"

    requiresUniqueEmail="false"

    passwordFormat="Hashed"

    maxInvalidPasswordAttempts="5"

    minRequiredPasswordLength="7"

    minRequiredNonalphanumericCharacters="1"

    passwordAttemptWindow="10"

    passwordStrengthRegularExpression=""

    />

    </providers>

    </membership>

    2. ทำการ hash password และเก็บไว้ใน database

    how to generate a hash:

    http://msdn.microsoft.com/en-us/library/w1t5hx6k.aspx

    sample of Membership Provider Implementation:

    http://msdn.microsoft.com/en-us/library/6tc47t75.aspx


    Supa Sethasiripong [MSFT]
    MSDN Community Support | Feedback to us
    Get or Request Code Sample from Microsoft
    Please remember to mark the replies as answers if they help and unmark them if they provide no help.

    • ทำเครื่องหมายเป็นคำตอบโดย supa_sModerator 8 พฤษภาคม 2555 2:27
    7 พฤษภาคม 2555 5:16
    ผู้ดูแล