บล็อคของคนขี้บ่น เห็นอะไรไม่ดีไม่ถูกใจ ไม่ได้ดั่งที่คิด บ่นไว้ก่อน พ่อสอนไว้ ^ ^
Group Blog
 
 
กุมภาพันธ์ 2554
 12345
6789101112
13141516171819
20212223242526
2728 
 
21 กุมภาพันธ์ 2554
 
All Blogs
 

การเข้ารหัส 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 น.  

 

ลองดูครับไม่ยากเท่าไหร่ แต่รูปผมหายหมดเลยนี่ซิ -*-

 

โดย: Travel Dev 24 พฤศจิกายน 2554 16:12:09 น.  

ชื่อ : * blog นี้ comment ได้เฉพาะสมาชิก
Comment :
  *ส่วน comment ไม่สามารถใช้ javascript และ style sheet
 


Travel Dev
Location :


[ดู Profile ทั้งหมด]

ฝากข้อความหลังไมค์
Rss Feed
Smember
ผู้ติดตามบล็อก : 1 คน [?]




Friends' blogs
[Add Travel Dev's blog to your web]
Links
 

 Pantip.com | PantipMarket.com | Pantown.com | © 2004 BlogGang.com allrights reserved.