PDA

View Full Version : محدود کردن یک صفحه برای کاربران



mr-secret
یک شنبه 03 اردیبهشت 1391, 16:41 عصر
سلام

دوستان من یک صفحه در سایت دارم که نمیخوام هر کسی مسقیم لینکشو زد بالا باید میخوام فقط کسانی که از طرف یک سایت به این صفحه میان بالا بیاد؟

چه دستوراتی باید در اون صفحه یا فایل htaccess. وارد بشه؟

djsaeedkhan
یک شنبه 03 اردیبهشت 1391, 16:59 عصر
سلام
با فایل htaccess نمی دونم
ولی اگر کار خاصی باهاش نداری یه شرط بزار و اول صفحه چک کن اگر خودت نبودی خارج بشه
البته نکات امنیتی رو هم فراموش نکنی

اینم یه راهه
http://barnamenevis.org/showthread.php?323278-%D8%A7%DB%8C%D8%AC%D8%A7%D8%AF-%D8%AD%D9%82-%D8%AF%D8%B3%D8%AA%D8%B1%D8%B3%DB%8C-%D8%A8%D8%B3%DB%8C%D8%A7%D8%B1-%D8%B3%D8%A7%D8%AF%D9%87

mr-secret
یک شنبه 03 اردیبهشت 1391, 17:51 عصر
فکر کنم منظورم رو درست متوجه نشدید

بنده همیچین لینکی دارم


http://site.com/example.php



وقتی کسی این لینک رو مستقیم زد توی مرورگر خطا بده حالا مثلا 404

ولی اگر کسی از طرف یک ای پی یا یک سایت مشخص و خاص به این لینک هدایت شد بدون مشکل باز بشه

djsaeedkhan
یک شنبه 03 اردیبهشت 1391, 18:06 عصر
فکر کنم همچین چیزی بشه


RewriteEngine on
RewriteRule http://site.com/example.php http://localhost/RssNews/news.php?id=$1 [R,L]

mr-secret
یک شنبه 03 اردیبهشت 1391, 18:11 عصر
خوب یعنی این کد:



RewriteEngine on
RewriteRule http://site.com/example.php http://site2.com/example2.php[R,L]


وقتی کاربر به لینک اصلی میره خطا میگیره و وقتی از لینک دومی هدایت میشه به اصلی باز میشه؟

djsaeedkhan
یک شنبه 03 اردیبهشت 1391, 23:08 عصر
سلام
راستش من اینو دقیق نمی دونم درسته یا نه
ولی با این تا یه حدی میشه به نتیجه رسید
تو اینترنت بگردی می تونی شرط آی پی بذاری که اگر آی پی خودت بود این کارو انجام بده

mr-secret
دوشنبه 04 اردیبهشت 1391, 08:24 صبح
سلام
کد و پیدا کردم ولی تونستم برای ای پی شرط پیدا کنم


Order Deny,Allow
Deny from all
Allow from 2.187.55.37

<Files /rnd.php>
Order Allow,Deny
Allow from all
</Files>


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

MMSHFE
دوشنبه 04 اردیبهشت 1391, 16:52 عصر
دوست عزیز برای اینجور کارها معمولاً از htaccess. استفاده نمیشه چون اولاً همیشه و با همه امکاناتش در دسترس نیست و ثانیاً یکسری محدودیتها مثل معرفی دامنه بجای IP داره. مثلاً الآن وقتی IP رو گذاشتین، تمام سایتهای روی اون هاست میتونن به کد شما وصل بشن. راه منطقی تر، چک کردن HTTP_REFERER هست. مثال:

if(!isset($_SERVER['HTTP_REFERER']) || !in_array(parse_url($_SERVER['HTTP_REFERER'], PHP_URL_HOST), array('test.com', 'www.test.com'))) { exit(); }
موفق باشید.

رضا قربانی
دوشنبه 04 اردیبهشت 1391, 17:52 عصر
بفرمایید:


$Reza= $_SERVER['HTTP_REFERER'];
if ($Reza== "") {
print "eroor";
die('<meta http-equiv="refresh" content="3;url=404.php" />');
}

djsaeedkhan
دوشنبه 04 اردیبهشت 1391, 18:11 عصر
دوست عزیز برای اینجور کارها معمولاً از htaccess. استفاده نمیشه چون اولاً همیشه و با همه امکاناتش در دسترس نیست و ثانیاً یکسری محدودیتها مثل معرفی دامنه بجای IP داره. مثلاً الآن وقتی IP رو گذاشتین، تمام سایتهای روی اون هاست میتونن به کد شما وصل بشن. راه منطقی تر، چک کردن HTTP_REFERER هست. مثال:

if(!isset($_SERVER['HTTP_REFERER']) || !in_array(parse_url($_SERVER['HTTP_REFERER'], PHP_URL_HOST), array('test.com', 'www.test.com'))) { exit(); }
موفق باشید.

منم میگم نیاز به همچین چیزی نیست ولی ایشون اسرار دارن با Htaccess انجام بشه

mr-secret
دوشنبه 04 اردیبهشت 1391, 22:25 عصر
ممنون از لطق دوستان
خودم که به نتیجه زیر رسیدم
من اینو برای یک صفحه میخوام که از بانک پاسارگاد برگشت میخوره و فکر نکنم سایت دیگه ای رو هاست پاسارگاد باشه!
کدی که من الان پیدام کردم ولی هنوز تست نکردم؟


# set env-vars per site
SetEnvIf Referer "https://epayment.bankpasargad.com" pas_1
SetEnvIf Referer "https://bankpasargad.com" pas_2
SetEnvIf Referer "http://bpi.ir" pas_3
SetEnvIf Referer "http://epayment.bankpasargad.com" pas_4
SetEnvIf Referer "http://bankpasargad.com" pas_5

Order Deny,Allow
Deny from all
allow from env=pas_1
allow from env=pas_2
allow from env=pas_3
allow from env=pas_4
allow from env=pas_5
<Files /rnd.php>
Order Allow,Deny
Allow from all
</Files>


دوستان اگه این کد رو تایید میکنید وگر نه در مورد کد های خودتون هم یه توضیحی بدید که کجا باید ادرس سایت پاسارگاد زده بشه رو داد؟

MMSHFE
دوشنبه 04 اردیبهشت 1391, 22:36 عصر
اون کد که خوبه ولی اگه بخواین از روشی که من گفتم استفاده کنید اینطوری باید کار بشه:


<?php
$valid = array(
'https://epayment.bankpasargad.com/',
'https://bankpasargad.com/',
'http://bpi.ir/',
'http://epayment.bankpasargad.com/',
'http://bankpasargad.com/'
);
if(!isset($_SERVER['HTTP_REFERER']) || !in_array($_SERVER['HTTP_REFERER'], $valid) {
exit();
}
?>

موفق باشید.

mr-secret
سه شنبه 05 اردیبهشت 1391, 00:02 صبح
دوست عزیز این کد رو خشک و خالی بزارم تو htaccess. ?

رضا قربانی
سه شنبه 05 اردیبهشت 1391, 00:43 صبح
دوست عزیز این کد رو خشک و خالی بزارم تو htaccess. ?
تو خوب می شی .

mr-secret
سه شنبه 05 اردیبهشت 1391, 01:58 صبح
تو خوب می شی .

جان نگرفتم؟

رضا قربانی
سه شنبه 05 اردیبهشت 1391, 02:47 صبح
جان نگرفتم؟

می گم تا به حال کدهای php رو دیدید ؟

یارو کد php واست میذاره بعد سوال می کنی دوست عزیز این کد رو خشک و خالی بزارم تو htaccess. ?

این دو زبان برنامه نویسی ها فرق می کنه .

ما با کدهای php راهنماییتون کردیم و خیلی راحت فقط باید کپی و جایگزین کنید .

چرا تست نمی گیرید و سوال می پرسید !!!!!!؟ اگر صفر هم هستی بازم می تونی سوال مبتدی بکنی و همه هم جواب میدن . چیزی رو که متوجه نمیشی رو به زبون بیار ببینمیم مشکلت چیه ، کسی هم مسخره نمی کنه .

الآن کجارو نفهمیدی ؟

mr-secret
سه شنبه 05 اردیبهشت 1391, 15:15 عصر
دوست عزیز بنده در صفحه قبل هم اشاره کردم که این کد واسه یه صفحه است که از سایت پاسارگاد برگشت میخوره اگه کد رو دقت کرده باشید متوجه خواهید شد
بنده امکان تست ندارم چون اول باید صفحه ساخته بشه بعد مطمئن باشم که مشکلی نداره بعد درخواست رو بدم بانک پاسارگاد
اگر شما روشی برای تست دارید بیان کنید

MMSHFE
سه شنبه 05 اردیبهشت 1391, 15:22 عصر
دوستان لطفاً بحث بی دلیل نکنید و از بیان صحبتهایی که ممکنه ایجاد کدورت یا سوء تفاهم بکنه هم پرهیز کنید.

دوست عزیز این کد رو خشک و خالی بزارم تو htaccess. ?
دوست گرامی، کدی که گذاشتم یک اسکریپت PHP هست. این رو باید ابتدای صفحه ای که نتایج بانک پاسارگاد به اون ارسال میشه بگذارین تا اگه نتایج از صفحه ای غیر از صفحات بانکهای مشخص شده ارسال شده باشه، اسکریپت کار نکنه.
موفق باشید.