PDA

View Full Version : چگونگی پیدا کردن ip سایت ارجاع دهنده



leaping
سه شنبه 06 اسفند 1392, 19:52 عصر
سلام و خسته نباشید
میخواستم بدونم چطور میشه آدرس صفحه و یا سایتی رو که یک لینک رو ارجاع داده پیدا کنم؟
مثلا اینکه سایت گوگل به یک کاربر لینک داده و کاربر رو لینک کلیک کرده حالا من میخوام صفحه من از آی پی گوگل مطلع بشه نه آدرس صفحش
امیدوارم متوجه شده باشین چی میگم
تشکر

saeedvir
چهارشنبه 07 اسفند 1392, 18:23 عصر
با این کد :


$ip = gethostbyname('www.example.com');

echo $ip;

leaping
جمعه 09 اسفند 1392, 10:06 صبح
با این کد :


$ip = gethostbyname('www.example.com');

echo $ip;

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

bizinesman
شنبه 10 اسفند 1392, 01:47 صبح
echo $_SERVER['HTTP_REFERER'];

leaping
شنبه 10 اسفند 1392, 11:06 صبح
echo $_SERVER['HTTP_REFERER'];
خسته نباشی دوست من اما این نیست
این آدرس دامنه مورد نظر رو برات برمیگردونه نه آی پی اون رو :D

Yashar1989
شنبه 10 اسفند 1392, 11:18 صبح
خسته نباشی دوست من اما این نیست
این آدرس دامنه مورد نظر رو برات برمیگردونه نه آی پی اون رو :D

خوب همین مقدار رو بزار تو کد قبلی که saeedvir گذاشته آی پیش رو بگیر


$url= parse_url($_SERVER['HTTP_REFERER'], PHP_URL_HOST);
$ip = gethostbyname("$url");
echo $ip;

leaping
پنج شنبه 15 اسفند 1392, 17:42 عصر
خوب همین مقدار رو بزار تو کد قبلی که saeedvir گذاشته آی پیش رو بگیر


$url= parse_url($_SERVER['HTTP_REFERER'], PHP_URL_HOST);
$ip = gethostbyname("$url");
echo $ip;

ممنون خودم اینو میدونستم دوست عزیز اما وقتی میشه آدرس سایت رو با دستکاری DNS جعل کرد در نهایت این مقدار ... مقدار صحیح آی پی آدرس سایت اصلی رو پس میده در حالی که من میخوام ارجاع دهنده با آی پی و آدرس واقعی باشه؟
منظورم رو متوجه شدین یا بیشتر توضیح بدم؟ :)

maysam.m
پنج شنبه 15 اسفند 1392, 17:47 عصر
ممنون خودم اینو میدونستم دوست عزیز اما وقتی میشه آدرس سایت رو با دستکاری DNS جعل کرد در نهایت این مقدار ... مقدار صحیح آی پی آدرس سایت اصلی رو پس میده در حالی که من میخوام ارجاع دهنده با آی پی و آدرس واقعی باشه؟
منظورم رو متوجه شدین یا بیشتر توضیح بدم؟ :)
خودت داری میگی جعل کرده خوب اونایی که جعل شده رو نمیشه کاریش کرد
اونایی هم که آدرسها درسته با اون کدی که چند تا پست بالاتر معرفی شد آی پی ش به دست میاد!

leaping
پنج شنبه 15 اسفند 1392, 18:46 عصر
خودت داری میگی جعل کرده خوب اونایی که جعل شده رو نمیشه کاریش کرد
اونایی هم که آدرسها درسته با اون کدی که چند تا پست بالاتر معرفی شد آی پی ش به دست میاد!
خسته نباشی!!
خب مگه میشه تابعی وجود نداشته باشه که از درخواست سایتها و اشخاص جاعل جلوگیری کنه بر اساس آی پی
فرض کنید شما یک صفحه دارید که فقط میخواید از طریق ارجاعات سایت خودتون بشه بهش دسترسی داشت مثلا یک درخواست با متد پست
اینکارو باید چطور انجام داد؟

maysam.m
پنج شنبه 15 اسفند 1392, 19:04 عصر
خسته نباشی!!
خب مگه میشه تابعی وجود نداشته باشه که از درخواست سایتها و اشخاص جاعل جلوگیری کنه بر اساس آی پی
فرض کنید شما یک صفحه دارید که فقط میخواید از طریق ارجاعات سایت خودتون بشه بهش دسترسی داشت مثلا یک درخواست با متد پست
اینکارو باید چطور انجام داد؟

شما خسته نباشی واقعا !
اون کاری که شما میخواهید بکنید مثل اینه که لقمه رو دور سرتون بگردونید !
همچین کاری ممکن نیست و عقلانی نیست

دقیقا توضیح بده برای چی میخوای ارجاعات (رفرال) رو چک کنی و بر اساس اون عمل کنی؟ سناریوت رو بنویس تا بهت راه حل بدم

***BiDaK***
پنج شنبه 15 اسفند 1392, 19:08 عصر
استارتر چرا یه جوریه:قهقهه:

maysam.m
پنج شنبه 15 اسفند 1392, 19:24 عصر
استارتر چرا یه جوریه:قهقهه:
چه جوریه؟ :لبخند:

leaping
پنج شنبه 15 اسفند 1392, 20:07 عصر
شما خسته نباشی واقعا !
اون کاری که شما میخواهید بکنید مثل اینه که لقمه رو دور سرتون بگردونید !
همچین کاری ممکن نیست و عقلانی نیست

دقیقا توضیح بده برای چی میخوای ارجاعات (رفرال) رو چک کنی و بر اساس اون عمل کنی؟ سناریوت رو بنویس تا بهت راه حل بدم

سناریو رو کاملا توضیح دادم
گفتم میخوام به فرض یک فرم با متد پست به یک صفحه ارسال کنم ... خب در این صورت میخوام فقط در صورتی این درخواست پردازش بشه که از داخل سایت انجام شده باشه .. نه اینکه یکی فرم جعلی درست کرده باشه وم بخواد از طریق اون اطلاعات مورد نظر رو به موتورو ارسال کنه؟
سناریو واضح بود یا فیلمنامه بنویسم؟ :D

maysam.m
پنج شنبه 15 اسفند 1392, 20:20 عصر
سناریو رو کاملا توضیح دادم
گفتم میخوام به فرض یک فرم با متد پست به یک صفحه ارسال کنم ... خب در این صورت میخوام فقط در صورتی این درخواست پردازش بشه که از داخل سایت انجام شده باشه .. نه اینکه یکی فرم جعلی درست کرده باشه وم بخواد از طریق اون اطلاعات مورد نظر رو به موتورو ارسال کنه؟
سناریو واضح بود یا فیلمنامه بنویسم؟ :D

برای این کار باید از کپچا باید استفاده کنید. توی انجمن سرچ کنید نمونه های زیادی وجود داره.

همون سناریو رو نوشتی بسه فیلم نامه رو بی خیال :D

leaping
پنج شنبه 15 اسفند 1392, 20:23 عصر
برای این کار باید از کپچا باید استفاده کنید. توی انجمن سرچ کنید نمونه های زیادی وجود داره.

همون سناریو رو نوشتی بسه فیلم نامه رو بی خیال :D


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

maysam.m
پنج شنبه 15 اسفند 1392, 20:52 عصر
نه واقعا حق دارم که فیلمنامه بنویسم
آخه این چه ربطی به کپچا داره؟
کپچا وظیفش جلوگیری از وارد کردن اطلاعات توسط ربات اختراع شده نه آدم

عزیز من شما برای کاری که میخوای بزنی یه لینکی سایتی جایی که مشابه شما عمل کرده باشه بده تا من از دستت خود کشی نکردم ! :دی

شما چه اطلاعاتی داری و قراره چه اطلاعاتی ارسال کنی و بعد دریافت کنی که اینقدر میخوای موضوع رو پیچیده کنی؟
نوع فرمت و کاربردش چیه؟
تماس با ما ـه ؟
بخش نظراته؟
بخش ارسال مطلبه ؟
دقیقا چیه؟

مثلا نگران چه نوع اطلاعاتی هستی؟ اطلاعات جعلی یعنی چی؟ منظورت از لحاظ sql injection یا xss یا .... ؟

دقیقا توضیح بده کارهایی که میخوای بکنی و هدفت از این کار رو بگو

leaping
پنج شنبه 15 اسفند 1392, 21:20 عصر
عزیز من شما برای کاری که میخوای بزنی یه لینکی سایتی جایی که مشابه شما عمل کرده باشه بده تا من از دستت خود کشی نکردم ! :دی

شما چه اطلاعاتی داری و قراره چه اطلاعاتی ارسال کنی و بعد دریافت کنی که اینقدر میخوای موضوع رو پیچیده کنی؟
نوع فرمت و کاربردش چیه؟
تماس با ما ـه ؟
بخش نظراته؟
بخش ارسال مطلبه ؟
دقیقا چیه؟

مثلا نگران چه نوع اطلاعاتی هستی؟ اطلاعات جعلی یعنی چی؟ منظورت از لحاظ sql injection یا xss یا .... ؟

دقیقا توضیح بده کارهایی که میخوای بکنی و هدفت از این کار رو بگو

میثم جان جوش نزن

بعدشم اهداف من فعلا تا اطلاع ثانوی خصوصیه ... مهم بودن ارسال اطلاعات برام مهمه که فقط باید از خود سایت ارجاع داده بشه
یا به هر دلیلی میخوام یک آی پی خاص فقط به سایتم ارجاع بده
یک کلام شما بلد هستین همچین چیزیو یا خیر؟ :D

ahmadflasher
پنج شنبه 15 اسفند 1392, 22:42 عصر
فرض کنید شما یک صفحه دارید که فقط میخواید از طریق ارجاعات سایت خودتون بشه بهش دسترسی داشت مثلا یک درخواست با متد پست
اینکارو باید چطور انجام داد؟
متد پستش با خودت اما مجاز بودن ارجاعات داخلی رو میتونی از تابع زیر که دیتالایف انجین ازش استفاده میکنه بکار ببری . منم تو چندتا از پروژهام استفاده کردم مشکلی نداشت خودت میتونی کامل ترش کنی.


function clean_url($url) {

if( $url == '' ) return;

$url = str_replace( "http://", "", strtolower( $url ) );
$url = str_replace( "https://", "", $url );
if( substr( $url, 0, 4 ) == 'www.' ) $url = substr( $url, 4 );
$url = explode( '/', $url );
$url = reset( $url );
$url = explode( ':', $url );
$url = reset( $url );

return $url;
}
نحوه استفاده:

if (clean_url ( $_SERVER['HTTP_HOST'] ) != clean_url ("http://www.sosoft.ir"))
die("o0oo0o you cant go oN baby!!");

maysam.m
پنج شنبه 15 اسفند 1392, 23:02 عصر
میثم جان جوش نزن

بعدشم اهداف من فعلا تا اطلاع ثانوی خصوصیه ... مهم بودن ارسال اطلاعات برام مهمه که فقط باید از خود سایت ارجاع داده بشه
یا به هر دلیلی میخوام یک آی پی خاص فقط به سایتم ارجاع بده
یک کلام شما بلد هستین همچین چیزیو یا خیر؟ :D
همچین کاری غیر ممکنه
مگه اینکه از طریق htaccess امکان پذیر باشه
کلا علت کارت اشتباه است.
اگر عضو باشه و تعیین هویت کرده باشه که نیازی به این کار نیست. اگه مهمان باشه که شما هر کاری هم کنی اونی که بخواد بازم میتونی راحت لینک رفرال قلابی درست کنه و هیچ راهی نیست



متد پستش با خودت اما مجاز بودن ارجاعات داخلی رو میتونی از تابع زیر که دیتالایف انجین ازش استفاده میکنه بکار ببری . منم تو چندتا از پروژهام استفاده کردم مشکلی نداشت خودت میتونی کامل ترش کنی.


function clean_url($url) {

if( $url == '' ) return;

$url = str_replace( "http://", "", strtolower( $url ) );
$url = str_replace( "https://", "", $url );
if( substr( $url, 0, 4 ) == 'www.' ) $url = substr( $url, 4 );
$url = explode( '/', $url );
$url = reset( $url );
$url = explode( ':', $url );
$url = reset( $url );

return $url;
}
نحوه استفاده:

if (clean_url ( $_SERVER['HTTP_HOST'] ) != clean_url ("http://www.sosoft.ir"))
die("o0oo0o you cant go oN baby!!");

به نظرم بازم میشه این راه رو دور زد و بی فایده است

ahmadflasher
پنج شنبه 15 اسفند 1392, 23:18 عصر
به نظرم بازم میشه این راه رو دور زد و بی فایده است
تو همین سایت خوندم هکرها جدیدا دنبال نفوذ به یخچال و تی وی های هوشمند خونه مردم هستند !!!! هیچ چیز تو دنیای آی تی غیر قابل نفوذ و دور زدن نیست هدف کاهش آسیبهاست این تابع حداقل کاری که میتونه بکنه اینه که یه آدم مبتدی مثل من نمیتونه دورش بزنه همینم کلیه :لبخند:

maysam.m
پنج شنبه 15 اسفند 1392, 23:25 عصر
تو همین سایت خوندم هکرها جدیدا دنبال نفوذ به یخچال و تی وی های هوشمند خونه مردم هستند !!!! هیچ چیز تو دنیای آی تی غیر قابل نفوذ و دور زدن نیست هدف کاهش آسیبهاست این تابع حداقل کاری که میتونه بکنه اینه که یه آدم مبتدی مثل من نمیتونه دورش بزنه همینم کلیه :لبخند:

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

leaping
جمعه 16 اسفند 1392, 09:05 صبح
این راه رو که دوستان دیگر هم بهش اشاره کردند اما استارتر دنبال یه راه مافوق این کدهاست !
وقتی میشه این راهو خیلی ساده دور زد چرا برنامه خودمون رو روی یه اصل اشتباه بنا کنیم؟
استارتر میخواد انسانی نتونه فرمش رو جعل کنه که این نشده از کپچا هم که نمیخواد استفاده کنه !
زمانی که درخواست میخواد از مرورگر ارسال بشه کافیه به HTTP_REFERER مقدار بدی و اطلاعتت رو خیلی ساده ارسال کنی!
دوست عزیز یا اینکه شما خیلی نابغه هستین یا اینکه خیلی نوب هستین
استاتر هم (می) حتما رفته در این مورد اطلاعاتی رو کسب کرده اومده سوال کرده! بعدش هم اون راه های مافوق بشری رو که شما شبیه به معترضین دوره رنسانس و کلیسایی در مقابلش موضع گرفتین اندازه کافی منطقی هست بعدش HTTP_REFERE رو هم من میدونم میشه مقدار دهی کرد واسه همین دنبال راه دیگه ای بودم که گویا شما از پاسخگویی بهش عاجزید پس بهتره به دیگران توهین نکنید
موفق باشید

beh3000
جمعه 16 اسفند 1392, 10:44 صبح
دوستان لطفا توهین نکنند ... چون برنامه نویسی چیزی نیست که یکی بتونه بگه از همه چیزش سر درمیاره ... درمورد این سوالی هم که پرسیده بودن سوال خیلی خیلی خوبی هم بود .. واسه منم خیلی وقته سواله ... حالا روشش رو نمیدونم ولی باید دید کلا برای چی میخوای یک فرم جعل نشه ... برای تعداد ورود ها ( کم کردن سرعت کاربر ) که کپچا باید گذاشت برای امنیت داده ها هم که باشد باید کوئری دریافت اطلاعاتت امن باشه ... حالا بازم میشه یک الگوریتمی نوشت که یک فرم زمان انقضا داشته باشه یا یه چیزی مثل این ... بازم این تاپیک رو دنبال میکنم ببینم به کجا میرسه ... بازم ممنون از leaping

maysam.m
جمعه 16 اسفند 1392, 12:09 عصر
@leaping (http://barnamenevis.org/member.php?271747-leaping)

ابتدا بهتره فرهنگ گفتگو و گو و استفاده از ادبیات مناسب رو یاد بگیرید بعد در مورد مبتدی یا حرفه ای بودن دیگران صحبت کنید.
با این لحن ادبیات معلومه هنوز متوجه این قضیه نشدید که باید با کسانی که قصد راهنمایی به شما را دارند درست صحبت کنید.
برای شما واقعا متاسفم گویا شما نه تنها برنامه نویسی بلد نیستید بلکه آداب و معاشرت هم یاد نگرفتید.



دوست عزیز یا اینکه شما خیلی نابغه هستین یا اینکه خیلی نوب هستین
شما فرض کنید ما خیلی نوب هستیم و شما نابغه اید. البته واقعا احساس میکنم خیلی نابغه اید.



استاتر هم (می) حتما رفته در این مورد اطلاعاتی رو کسب کرده اومده سوال کرده!
مشخصه که چقدر اطلاعات کسب کرده نیازی به یادآوری نیست!



بعدش هم اون راه های مافوق بشری رو که شما شبیه به معترضین دوره رنسانس و کلیسایی در مقابلش موضع گرفتین اندازه کافی منطقی هست
معلومه که استعداد تاریخی بالایی هم دارید! البته منظورتون منطقی از نظر خودتون یا دیگران؟



بعدش HTTP_REFERE رو هم من میدونم میشه مقدار دهی کرد واسه همین دنبال راه دیگه ای بودم که گویا شما از پاسخگویی بهش عاجزید
شما تازه فهمیدید باید از راه دیگه رفت؟
اما بازم اشتباه فهمیدید چون منظور شما از راه دیگه اینه که لابد مجدد از HTTP_REFERE استفاده کرد!!
من فکر میکنیم شما خودتون هم نمی دونید میخواهید چی کار کنید یا احتمالا جزء طبقه بندی محرمانه است و امکان بازگویی اش رو ندارید یا اینکه پیش خودتون نشستید و خیالبافی های برنامه نویسانه کردید؟



پس بهتره به دیگران توهین نکنید
البته تا توهین چی باشه. ادبیات شما از ابتدای تاپیک گویای اینه که چه کسی دنبال توهین به دیگرانه

2undercover
جمعه 16 اسفند 1392, 12:23 عصر
استفاده از CSRF Token بهتره:

http://www.wikihow.com/Prevent-Cross-Site-Request-Forgery-(CSRF)-Attacks-in-PHP

beh3000
جمعه 16 اسفند 1392, 12:58 عصر
CSRF token برای کاربرایی که لاگین کردن عالیه و چیز دیگه ای لازم نیست ... ولی الان بیشتر بحث روی فرم هایی است که کاربر لازم نیست لاگین کنه ...

دوستان جر و بحث رو بذارید کنار دیگه توروخدا ... به هم احترام بذاریم و به همدیگه کمک کنیم ... maysam.m و leaping نفری یه معذرت خواهی بذارید و تمومش کنید ...

beh3000
جمعه 16 اسفند 1392, 13:03 عصر
leaping تو شرو کن اول تو کاربر تازه واردی maysam کاربر دائمی :لبخندساده: ممنون از هر دو ... زود باشید هر دو هم آنلاین هستین الان

rezaonline.net
جمعه 16 اسفند 1392, 14:08 عصر
CSRF token برای کاربرایی که لاگین کردن عالیه و چیز دیگه ای لازم نیست ... ولی الان بیشتر بحث روی فرم هایی است که کاربر لازم نیست لاگین کنه ...
سلام
توی تمامی فرمها لحاظ و چک بشه بهتر هست .

maysam.m
جمعه 16 اسفند 1392, 14:54 عصر
بنده خوشبختانه در مباحث علمی اگه اشتباه کنم جرات عذر خواهی دارم.
هرچند این قضیه در مورد بحث علمی نیست اما در هر صورت بنده اگر به کسی توهین کردم عذرخواهی میکنم.

پ.ن:
HTTP_REFERE و دیگر هیچ! :قهقهه:

leaping
جمعه 16 اسفند 1392, 17:48 عصر
اون موقع آنلاین نبودم
از تمام کسایی هم که فک میکنن بهشون توهین شده عذر خواهی میکنم
دیگه ترجیح میدم وارد این بحثها نشم دوستان اگه اطلاعات کلی در مورد این نوع فرمها بدن ممنون میشم

در کل این مباحث وقتی نمود پیدا میکنه که کاربر میاد و یک سری از فرمهارو به دلخواه خودش پر میکنه و به آدرس سایت میفرسه به دفعات زیاد ... حالا من قضیه کپچا و سایر چک کردنهارو میدونم ... در مورد sql injection هم تا جایی که مربوط به وارد کردن اطلاعات توسط نفوذگر باشه از طریق فرمها حس میکنم تا حد زیادی کاهشش دادم اما خب همیشه یه راهی هست
بیشتر نظرم رو این هست که اگه یک سری از درخواستها اگر به صورت مستقیم و از طریق خود وب سایت ارجاع داده بشن امنیتش بسیار بالا خواهد رفت مشابه این بحث رو توی فرمهای خارجی دیدم و هر یک به طوری بحثشو ادامه داده بودن
یه عده اومدن و گفتن که از طریق یک صفحه واسط اگه انجام بشه بهتر هست اما اینم باز میشه همون قضیه چک کردن که فرق خاصی نمیکنه اما یه عده اومده بودن حرف از ایجاد توابعی میزدن که میبایست به خود زبان اسکریپت نویسی php اضافه بشه نمونه بحثش رو هم توی مباحث امنیتی php.net میشه پیدا کرد از همه اینها گذشته خودمم رفتم یکم اطلاعات جمع کردم حالا دیگه دارم به تحقیقات علمیم ادامه میدم :D ببینم به کجا میرسه خبری شد به شماهم میگم :)

2undercover
جمعه 16 اسفند 1392, 19:32 عصر
اون موقع آنلاین نبودم
از تمام کسایی هم که فک میکنن بهشون توهین شده عذر خواهی میکنم
دیگه ترجیح میدم وارد این بحثها نشم دوستان اگه اطلاعات کلی در مورد این نوع فرمها بدن ممنون میشم

در کل این مباحث وقتی نمود پیدا میکنه که کاربر میاد و یک سری از فرمهارو به دلخواه خودش پر میکنه و به آدرس سایت میفرسه به دفعات زیاد ... حالا من قضیه کپچا و سایر چک کردنهارو میدونم ... در مورد sql injection هم تا جایی که مربوط به وارد کردن اطلاعات توسط نفوذگر باشه از طریق فرمها حس میکنم تا حد زیادی کاهشش دادم اما خب همیشه یه راهی هست
بیشتر نظرم رو این هست که اگه یک سری از درخواستها اگر به صورت مستقیم و از طریق خود وب سایت ارجاع داده بشن امنیتش بسیار بالا خواهد رفت مشابه این بحث رو توی فرمهای خارجی دیدم و هر یک به طوری بحثشو ادامه داده بودن
یه عده اومدن و گفتن که از طریق یک صفحه واسط اگه انجام بشه بهتر هست اما اینم باز میشه همون قضیه چک کردن که فرق خاصی نمیکنه اما یه عده اومده بودن حرف از ایجاد توابعی میزدن که میبایست به خود زبان اسکریپت نویسی php اضافه بشه نمونه بحثش رو هم توی مباحث امنیتی php.net میشه پیدا کرد از همه اینها گذشته خودمم رفتم یکم اطلاعات جمع کردم حالا دیگه دارم به تحقیقات علمیم ادامه میدم :D ببینم به کجا میرسه خبری شد به شماهم میگم :)

خوب شما CSRF Token رو در نظر بگیرید:

شما توی صفحه فرم یک رشته تصادفی و غیرقابل حدس تولید می کنید، بعد اون توی یک Session می ریزید و همچنین به یک input از نوع hidden توی فرم اضافه می کنید. بعد موقع ارسال فرم، بررسی می کنید که مقداری که توی Session ریختید با چیزی که توی فرم ارسال شده هست مطابقت داره یا نه.

اینجوری اگه کسی بخواد فرم جعلی ارسال بکنه نیاز به اون رشته تصادفی داره، که تنتها راه بدست آوردنش مراجعه به سایت هست، و هر بار که بخواد فرم جعلی ارسال بکنه نیاز داره تا به سایت مراجعه بکنه و اون رشته رو بدست بیاره! (البته در هر صورت می تونه با نوشتن یک ربات، این روش رو دور بزنه و این مشکل هیچ راه حلی فک نمی کنم داشته باشه!)

leaping
جمعه 16 اسفند 1392, 19:56 عصر
خوب شما CSRF Token رو در نظر بگیرید:

شما توی صفحه فرم یک رشته تصادفی و غیرقابل حدس تولید می کنید، بعد اون توی یک Session می ریزید و همچنین به یک input از نوع hidden توی فرم اضافه می کنید. بعد موقع ارسال فرم، بررسی می کنید که مقداری که توی Session ریختید با چیزی که توی فرم ارسال شده هست مطابقت داره یا نه.

اینجوری اگه کسی بخواد فرم جعلی ارسال بکنه نیاز به اون رشته تصادفی داره، که تنتها راه بدست آوردنش مراجعه به سایت هست، و هر بار که بخواد فرم جعلی ارسال بکنه نیاز داره تا به سایت مراجعه بکنه و اون رشته رو بدست بیاره! (البته در هر صورت می تونه با نوشتن یک ربات، این روش رو دور بزنه و این مشکل هیچ راه حلی فک نمی کنم داشته باشه!)

دقیقا خودمم به همه اینها فکر کرده بودم که میشه دور زد ... اما به گفته یک دوست توی سایت آشیانه شرکتهای بزرگی مثل گوگل سیستم برنامه نویسی مختص به خودشون رو دارن به همین ترتیب هست که نوع حملات به کل متفاوت میشه و میبایست از روشهای دیگه ای استفاده کرد اما هر روشی برای حمله یک ضد حمله هم قاعدتا خواهد داشت مهم اینه که برنامه نویس بتونه یک قدم جلوتر از هکر باشه ... که این خودش مشکل ترین قضیست اینجا
اما به هر حال تا پیدا کردن یه راه حل مناسب به کارم ادامه میدم ... :لبخندساده:

rezaonline.net
جمعه 16 اسفند 1392, 21:35 عصر
csrf رو میتونی رشته تولید شده رو بصورت رندم در نظر بگیری و همچنین توی کوکی مروگر هم بریزی . دیگه بیشتر از این واقعا زیاده روی هست :)

cpuram
جمعه 16 اسفند 1392, 23:42 عصر
شاید بشه مثلا 500 رشته هش شده داخل دیتابیس ذخیره کرد و هر بار که صفحه لود میشه یکی از این رشته ها داخل سشن بریزیم بعد هنگام ارسال ببینیم مقدار ارسال شده داخل این 500 تا هست یا نه البته اگه صفحه جعلی باشه نمیتونه مقداری توی سشن بزاره.

leaping
شنبه 17 اسفند 1392, 15:03 عصر
csrf رو میتونی رشته تولید شده رو بصورت رندم در نظر بگیری و همچنین توی کوکی مروگر هم بریزی . دیگه بیشتر از این واقعا زیاده روی هست :)

رضا جان زیاده روی چرا خب هرچی امنیت بیشتر ... بهتر دیگه

leaping
شنبه 17 اسفند 1392, 15:07 عصر
شاید بشه مثلا 500 رشته هش شده داخل دیتابیس ذخیره کرد و هر بار که صفحه لود میشه یکی از این رشته ها داخل سشن بریزیم بعد هنگام ارسال ببینیم مقدار ارسال شده داخل این 500 تا هست یا نه البته اگه صفحه جعلی باشه نمیتونه مقداری توی سشن بزاره.

خب میاد یکبار صفحه رو بارگذاری میکنه (در این صورت سیشن مقدار میگیره) حالا خودش میره و یک فرم ایجاد میکنه و برات ارسالش میکنه ... من منظورم این بود که یک فرم فقط از درون خود سایت ارجاع داده بشه حالا دلیلش هم منطقی یا غیر منطقی بعدا میخوام بگم ... چون شاید واقعا غیر منطقی باشه ... امام تا به اینجای کار به هیچ نتیجه ای نرسیدم ... شایدم واقعا یک مقوله (ما فوق بشری باشه) :D

اما میگردم ببینم چی میشه .... دوستان پیگیر خسته نباشن

rezaonline.net
شنبه 17 اسفند 1392, 16:18 عصر
رضا جان زیاده روی چرا خب هرچی امنیت بیشتر ... بهتر دیگه
نه آخه مجبور میشی کدهای پیچیده بنویسی .
به طور مثال این روش توکن رندم رو خیلی خیلی به ندرت استفاده میکنن
و اکثرا از توکن ثابت استفاده میکنن که راحتتره .
پیشنهاد میکنم زیاد روی این قضیه حساس نباشید .

در نهایتش اینه که جدای از csrf شما بیایید یه کاری کنید هر آی پی توی 5 دقیقه مثلا حداکثر 5 درخواست POST بفرسته .
دیگه خیالتونم راحت میشه .
:)

us1234
شنبه 17 اسفند 1392, 17:22 عصر
خوب شما CSRF Token رو در نظر بگیرید:

شما توی صفحه فرم یک رشته تصادفی و غیرقابل حدس تولید می کنید، بعد اون توی یک Session می ریزید و همچنین به یک input از نوع hidden توی فرم اضافه می کنید. بعد موقع ارسال فرم، بررسی می کنید که مقداری که توی Session ریختید با چیزی که توی فرم ارسال شده هست مطابقت داره یا نه.

اینجوری اگه کسی بخواد فرم جعلی ارسال بکنه نیاز به اون رشته تصادفی داره، که تنتها راه بدست آوردنش مراجعه به سایت هست، و هر بار که بخواد فرم جعلی ارسال بکنه نیاز داره تا به سایت مراجعه بکنه و اون رشته رو بدست بیاره! (البته در هر صورت می تونه با نوشتن یک ربات، این روش رو دور بزنه و این مشکل هیچ راه حلی فک نمی کنم داشته باشه!)

خوب به جای این روش از کپتچا استفاده شود که خیلی بهتره ! این روش به نوعی همان کاری است که کپتچا انجام میده ولی رشته تولید شده با ماشین هم قابل پیدا کردن است ( برعکس کپتچا )

leaping
شنبه 17 اسفند 1392, 18:13 عصر
خوب به جای این روش از کپتچا استفاده شود که خیلی بهتره ! این روش به نوعی همان کاری است که کپتچا انجام میده ولی رشته تولید شده با ماشین هم قابل پیدا کردن است ( برعکس کپتچا )
اصولا قضیه یه چیز دیگه بود که کلا منحرف شد ... اما خب بله استفاده از کپچا و همین راندوم استرینگ امنیت رو تا حد زیادی بالا میبره اما خب روش صدرصدی که نیست ... و من الله توفیق :D

من که به نتیجه خاصی به جز همون روشهای قبلی نرسیدم اما همیشه جوینده یابندست
به قول رضا جان زیادی رو این قضیه حساس شدم گویا ... :D

اما در کل بحث امنیت اسکریپت نویسی یجورایی شخصی نویسی شده و بچه های حرفه ای به قول عامه (کمتر نم پس میدن) ... باز نگین توهین کرد... شوخی بود

beh3000
شنبه 17 اسفند 1392, 19:03 عصر
همون csrf به نظر منم کافیه ... رشته csrf که هست نام فیلد ها رو هم تصادفی تولید میکنی دیگه خیالت راحته

leaping
یک شنبه 18 اسفند 1392, 09:43 صبح
خب دوستان شرمنده یه سوال داشتم
الان اگه ما بخوایم به سیستم درگاه بانک متصل بشیم وقتی ارجاع داده میشه بانک باید تشخیص بده که از کدوم ip شما متصل شدین وگرنه تایید نمیشه درخواستتون خب اینها همه چطوری صورت میگیره؟ :D

cpuram
یک شنبه 18 اسفند 1392, 10:06 صبح
بانک کلاسهای بلندی نوشته که وقتی آدم میبینه مغرش سوت میکشه.
روش nusoap هست که من بلد نیستم.

leaping
یک شنبه 18 اسفند 1392, 10:26 صبح
پس راهش هست
این راه رو قطعا اساتید بلد هستن اگه بخوان انتقال بدن ببینیم حداقل طرز کارش چطوریه

cpuram
یک شنبه 18 اسفند 1392, 10:47 صبح
امیدوارم کسی بدونه چون کدهایی رو که من میگم بلنده فقط سمت سرور مشتری بانک هست کدهای خود بانک دیگه چی میشه خدا میدونه.
اینم نگاه کن
http://sourceforge.net/projects/nusoap/files/latest/download

leaping
یک شنبه 18 اسفند 1392, 11:24 صبح
اصئلا قضیه این soap چی هست یکی بیاد توضیح بده بد نمیشه ... ممنون :)