\

Facebook


วันอังคารที่ 15 สิงหาคม พ.ศ. 2560

[ASP.NET] วิธีเข้ารหัส connectionStrings ในไฟล์ web.config ให้อ่านไม่ออก


ปกติหลังจากเราสร้างเว็บแอปเสร็จเรียบร้อยแล้ว เมื่อจะส่ง deploy สิ่งหนึ่งที่ควรระมัดระวังคือ username และ password ของ DB Account ใน connection string ที่อยู่ภายในไฟล์ web.config ที่โชว์ทั้งตัวเลขตัวอักษรอย่างไม่เกรงใจใคร เรียกได้ว่าเมื่อมีใครเข้ามาแอบเปิดไฟล์นี้ดูก็สามารถขโมยข้อมูลเหล่านี้ออกไปได้อย่างง่ายดาย วิธีป้องกันคือการเข้ารหัสมันซะ

สคลิปที่เราใช้มีชื่อว่า aspnet_regiis ซึ่งซ่อนตัวอยู่ภายในโฟล์เดอร์ของเฟรมเวิร์ค 4.0 ตามพาทนี้ C:\Windows\Microsoft.NET\Framework\v4.0.30319 ถ้าไม่เจอก็ให้ install .NET framwork 4 ก่อนครับ

ไปเพิ่ม path ใน environment ก่อน จะได้เรียกสคิปได้


เข้าไปที่ Control Panel > System and Security > System เลือก Advanced System settings แล้วเลือก Environment Variables มองหาพาแนล System variables แล้วแก้ไขค่า Path เพิ่ม C:\Windows\Microsoft.NET\Framework\v4.0.30319\ เข้าไป


หลังจากนั้นเปิด command line ขึ้นมาด้วย Administrator แล้วใส่คอมมานนี้ลงไปเพื่อเข้ารหัส section "connectionStrings" ที่อยู่ในไฟล์ web.config


aspnet_regiis -pef "connectionStrings" "D:\PathTo\File"


อย่าลืมเปลี่ยนพาท "D:\PathTo\File" ให้เป็นพาทจริงที่บรรจุไฟล์ .config


หลังจากนั้นถ้าขึ้นข้อความว่า Succeeded! แปลว่าเข้ารหัสสำเร็จ ทดลองเปิดไฟล์ดูจะพบว่าถูกเพิ่มส่วน EncryptedData เพื่อใส่ CipherData ขึ้นมาเป็นอันเสร็จสิ้น

ถ้าต้องการถอดรหัสคืน ทำไง?

อย่างง่าย แค่พิมพ์ command นี้ลงไป


aspnet_regiis -pef "connectionStrings" "D:\PathTo\File"


จบ

ไม่มีความคิดเห็น:

May be like this posts