اجازه دادن به خودم و ندادن به دیگران برای دیدن یک صفحه (.htpasswd)

majid65

New Member
اجازه دادن به خودم و ندادن به دیگران برای دیدن یک صفحه (.htaccess)

سلام من برای اینکه کسی صفحه مورد نظرمو نبینه از فایل .htaccessکمک گرفتم و کدی که در زیر نوشتم رو درونش قرار دادم صفحه مورد نظر من صفحه ایست که صفحه ای دیگه از طریق آجاکس مقداری براش فرستاده میشه و بعد نتیجه رو بر میگردونه .حالا با کد زیر دیگران نمیتونند صفحه رو ببینند و این خوبه ولی من چه کنم ؟



PHP:
AuthUserFile .htaccess
AuthType Basic
AuthName "Protected Area"

<Files "mypage.php">
  Require valid-user
</Files>

 
آخرین ویرایش:
دوست عزیز بیشتر توضیح بدید, شما یک صفحه رو restrict کردید برای بازدیدکنندگان و حالا میخواید این صفحه رو در یک صفحه دیگه به صورت Ajax لود کنید ؟لود کردن صفحه در این صورت نیاز داره که کاربر اجازه دسترسی به این فایل رو داشته باشه. میتونید Variable ها و نوع دسترسی به فایل رو با خود php محدود کنید که به صورت خالی نشه فایل رو دید و فقط با زدن دستور مخصوص مثل file.php?getajax&id=1 قادر به گرفتن اطلاعات و در غیر این صورت چیزی return نشه. سوالتون هم در بخش صحیح ارسال کنید.

موفق باشید.
 

Domanjiri

Well-Known Member
درود بر شما

همونطور که دوستمون، equilibriumator گفت، جلوگیری کامل از دسترسی مستقیم به یک فایل درحالی که با AJAX بهش دسترسی داشته باشیم، غیر ممکن هست.

اما میشه تا حدود زیادی از دسترسی مستقیم جلوگیری کرد. کد زیر ابتدا چک می کنه که آیا درخواست بصورت XMLHttpRequest اومده یا نه؟ (که در درخواست AJAX اینطور هست و باقی درخواست ها، نه!)

PHP:
if(!empty($_SERVER['HTTP_X_REQUESTED_WITH']) && strtolower($_SERVER['HTTP_X_REQUESTED_WITH']) == 'xmlhttprequest') {
 //کدهای شما اینجا قرار می گیره
}
اما باید بهتون بگم که در این روش، یک خرابکار(!) میتونه با تعویض هدر ارسالی از طرف مرورگر، به فایلتون دسترسی پیدا کنه.

اگه سیستمی که نوشتین اینطور هست که برای تمام بازدید کننده ها session ست می کنید، می تونید به ازای هر درخواستی که از طرف کاربر برای مشاهده صفحه میاد، یک مقدار تصادفی در session اون کاربر ذخیره کنید و یک کپی از اون مقدار رو به صفحه html بفرستید. حالا برای هر در خواست AJAX اگه مقدار تصادفی فرستاده شده از طرف مرورگر با مقداری که در session بود برابر باشه => نمایش اطلاعات، وگرنه، ارور!

البته این راه هم قابلیت دور زدن رو داره!

موفق باشین
 
آخرین ویرایش:

جدیدترین ارسال ها

بالا