|
| 1 | 2 | 3 | 4 | 5 |
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | |
|
|
|
|
|
|
|
การเข้ารหัส Config ของ SharePoint ไม่ให้คนอื่นรู้
เมื่อไม่นานมานี้ผมได้หา solution ที่ใช้ในการเข้ารหัส connectionString ของ web application ที่ผมเขียนอยู่ซึ่งรันอยู่บนระบบ Microsoft Office SharePoint Server 2007 ข้อมูลที่ผมหาได้จากทาง Google นั้นก็มีหลายวิธี เช่น 1.เขียนโปรแกรมเข้ารหัส connection string แล้วเอาไปใส่ใน web.config จากนั้นเวลาใช้ก็ต้องเขียนโค๊ดเพื่อทำการ Decode กลับมา 2.ใช้การ Authentication ผ่านระบบของ windows แทน 3.ใช้ aspnet_regiis.exe ในการ encode
จากนั้นผมก็เลยตัดสินใจเลือกวิธีการใช้ aspnet_regiis.exe ซึ่งมีมาใน .NET Framework เหตุผลที่ผมเลือกใช้ก็เพราะว่า 1.สะดวกในการนำไปใช้ไม่ต้องมานั่ง encode รหัสแล้วเอาไปแปะไว้ใน ไฟล์ web.config 2. ไม่ต้องนั่งเขียนโค๊ดเพื่อทำการ Decode ตัวรหัสที่เราทำการเข้าไว้ ถ้าหากเปลี่ยนมือคนเขียนโปรแกรมไปแล้วดันหาวิธีคิด อัลกอลิทึม ที่ทำไว้จะยิ่งแย่ไปใหญ่ 3.IIS ทำการ Decode ให้เราอัตโนมัติโดยไม่มีผลต่อโค๊ดเดิมโปรแกรมเดิมที่เขียนไว้หรือรันอยู่ ไม่ต้องไปนั่งแก้โค๊ดเก่าๆให้รองรับกับการ เข้ารหัส
นี่คงเป็นข้อดีคร่าวๆที่ผมตัดสินใจเลือกวิธีนี้ ดังนั้นเรามีดูวิธีการกันเลยครับ 1. เครื่องที่ทำต้องเป็นเครื่องที่ติดตั้ง IIS ดังนั้นในตัวอย่างผมจะใช้เว็บไซด์ที่ผมมีอยู่บน IIS และมีเว็บรันอยู่นะครับ ทำให้ดูนะครับ 2. เปิด Command Prompt ครับ (windows+R) 3.พิมพ์ cd C:WindowsMicrosoft.NETFrameworkv2.0.50727> (ถ้าไม่เจอแสดงว่าเครื่องท่านไม่ได้ลง .net ไว้นะครับต้องติดตั้งก่อน)
Attachment 823 4.จากนั้นให้พิมพ์ command ตามนี้ครับ syntex Code: aspnet_regiis.exe -pef "system.web/type" "directoryname"ex Code: aspnet_regiis.exe -pef "connectionStrings" "c:InetpubwwwrootwssVirtualDirectories80"เมื่อทำการ กด enter จะปรากฏข้อความ Encrypting configuration section... Succeeded!
Attachment 826
ตัวอย่างภาพ Web.config / ConnectionString ก่อนเข้ารหัส
Attachment 824
ตัวอย่างภาพ Web.config / ConnectionString หลังเข้ารหัส Attachment 825
จากรูปจะเห็นก่อนและหลังนะครับ ซึ่งวิธีนี้เป็นวิธีที่สะดวกและเหมาะสำหรับผู้ดูแลระบบที่สามารถนำไปใช้ได้เลยไม่ต้องรอ Programmer ในการเขียนโปรแกรมเข้ารหัสให้ยุ่งยากครับ ส่วนวิธีการถอดรหัสนั้นก็ง่ายมากเช่นกันครับ จากนั้นให้พิมพ์ command ตามนี้ครับ แค่เปลี่ยนจากคำว่า "pef" เป็น "pdf" เท่านั้นเอง
syntex
Code: aspnet_regiis.exe -pdf "system.web/type" "directoryname"ex
Code: aspnet_regiis.exe -pdf "connectionStrings" "c:InetpubwwwrootwssVirtualDirectories80"
ลองไปใช้กันดูนะครับ รหัสที่ได้จากการเข้ารหัสของเครื่องนั้นๆจะนำไปถอดรหัสที่เครื่องอื่นไม่ได้นะครับ เพราะว่าการเข้ารหัสจะถูกผนวกเข้าไปกับ Machine Code ครับ
อย่างไรก็ตามวิธีนี้ก็ยังเป็นดาบสองคมเหมือนกันถ้าหากเครื่อง Server ของท่านถูกเข้าใช้งานได้โดยผู้ไม่ประสงค์ดีเค้าก็สามารถจะถอดรหัสไปได้อย่างง่ายได้ครับ
Create Date : 21 กุมภาพันธ์ 2554 |
|
3 comments |
Last Update : 21 กุมภาพันธ์ 2554 15:01:26 น. |
Counter : 633 Pageviews. |
|
|
|
|
| |
โดย: nugozone 21 กุมภาพันธ์ 2554 15:44:37 น. |
|
|
|
| |
โดย: bestgo99 21 กุมภาพันธ์ 2554 15:58:05 น. |
|
|
|
|
|
|
|