2007/Apr/20

เมื่อไม่นานมานี้ได้อ่านเจอข่าวเกี่ยวกับด้านความปลอดภัยในการใช้งานAjax (AJAX Apps Ripe Targets for JavaScript Hijacking) ช่องทางที่ hacker สามารถ hackได้ผ่าน JSON (JavaScript Object Notation)ซึ่งเป็นรูปแบบการส่งข้อมูลไปมาระหว่างClientและServerในรูปแบบObjectโดยมากแล้วตัวAjaxframeworkจะมีช่องโหว่ในการใช้cross domain scrpt หมายถึงการเรียกscriptจากdomain อื่นๆๆที่ไม่ใช่ domain เดียวกัน การโจมตีที่ได้รับรายงานในข่าว hacker จะทำการโจมตีผ่าน HTTP GET เพื่อเป็นตัว Invoke HTML ที่มี <script src="">ประกอบอยู่ด้วย
ใน Ajax.Net 1.0 มีการกำหนดค่าเบื้องต้นเพื่อปกกันการโจมตีอยู่บ้างแล้ว เว้นเสียว่าเวลาที่เราเขียนโปรแกรมแล้วดันไปเปิดช่องโหว่นี้เอง ค่าติดตั้งเบื้องต้นหรือ ค่า Default ก็คือ
- asp.net ajax จะไม่กำหนดและไม่อนุญาติวิธีการเรียกใช้ Web Method เป็น HTTP GET
 

[WebMethod]
publicStockQuote[]GetQuotes(stringsymbol){

}

- asp.net ajax มีการตรวจสอบ stack content-type header ทุกครั้งที่มีการrequestเข้ามา

ตัวอย่างการส่ง request เข้ามาเพื่อไป invoke method ในเวบ Server โดยใช้Web Method แบบ HTTP GET

GET/StockService/Stock.asmx/GetQuotes?symbol=%22msft%22HTTP/1.1
Accept:*/*
Accept-Language:en-us,fr;q=0.5
Referer:http://xxxxxx/StockService/test.aspx
Content-Type:application/json;charset=utf-8
UA-CPU:x86
Accept-Encoding:gzip,deflate
User-Agent:Mozilla/4.0(compatible;MSIE7.0;WindowsNT5.1;.NETCLR1.1.4322;.NETCLR2.0.50727;InfoPath.2)
Host:xxxxxx
Proxy-Connection:Keep-Alive

รูปแบบในการส่ง request โดยใช้ <script src="" >

<scripttype="text/javascript"src="http://contoso.com/StockService/Stock.asmx/GetQuotes?symbol=msft"/>

อย่างไรก็ตาม browsers ไม่สามารถ set Content-Type เป็น application/json ผ่าน <script src=""> ได้เป็นเรื่องที่ดีนิดหนึ่ง

ช่วงนี้ไม่ได้เข้ามาอัพซะนาน นั้งแอบทำเวบที่ไกล้จะขึ้นเต็มที่ และก็ จะเข้าไปอัพที่http://www.blogzaa.com อีกที่หนึ่ง

Comment

Comment:

Tweet


snippet.googalz.com
View full profile