۱۳۹۰/۰۱/۱۵

بررسي امنيتي، حين استفاده از jQuery Ajax


چندين نمونه استفاده از jQuery Ajax در ASP.NET Webforms را در اين سايت مي‌توانيد پيدا كنيد؛ براي مثال:

سؤالي كه در تمام اين موارد حائز اهميت است اين مورد مي‌باشد كه "از كجا متوجه شوم وب سرويس مورد استفاده واقعا توسط اسكريپت سايت جاري فراخواني شده و نه توسط يك برنامه‌ي خارجي؟"

در اينجا مي‌توان از سورس‌هاي ASP.NET MVC كمك گرفت : (+). همان متد IsAjaxRequest را در ASP.NET Webforms هم مي‌شود استفاده كرد:

public static bool IsAjaxRequest(this HttpRequestBase request)
{
if (request == null)
{
throw new ArgumentNullException("request");
}

return (request["X-Requested-With"] == "XMLHttpRequest") ||
((request.Headers != null) && (request.Headers["X-Requested-With"] == "XMLHttpRequest"));
}

حاصل IsAjaxRequest بايد در ابتداي تمام درخواست‌هاي رسيده بررسي شود. البته بايد دقت داشت كه اين بررسي را به آساني مي‌توان دور زد (چون بر اساس هدرهاي رسيده است)، اما باز هم بهتر از هيچ نوع نظارتي مي‌باشد.