PDA

View Full Version : عمل توکن گذاری در کدام صفحات و در چ شرایطی



olampiad
دوشنبه 18 آبان 1394, 00:38 صبح
سلام و خسته نباشید به دوستان عزیز
همونطور که خودتون میدونید تازگی ها عمل توکن گذاری برای جلوگیری از نفوذ ربات ها به وبسایت مورد استفاده قرار میگیره.
من خودم تو ثبت نام و لاگین از توکن استفاده میکنم.
تو ثبت نام استفاده میکنم: چون نمیخوام ب غیر سایت خودم از سایت و مسیر دیگه ای به سایتم اطلاعات بفرستن
و ...
حالا سوالی که برام پیش اومده اینه:
تو چ صفحه هایی و تو چ شرایطی از توکن استفاده کنیم بهتره؟
آحه کد کپتچا هم هستش از اون تو چ شرایطی استفاده کنیم؟
خیلی ممنون

us1234
دوشنبه 18 آبان 1394, 11:02 صبح
توکن برای ربات نیست ...

ربات اگر ربات باشه :) یکبار صفحه را لود میکنه ، توکن و سشن که ست کردید را برمیداره و دفعه بعد آنها را به شما تحویل میدهد :))

توکن برای مقاصد دیگه استفاده میشود

CSRF

olampiad
سه شنبه 19 آبان 1394, 10:33 صبح
تا جایی که من مطالعه داشتم توکن گذاری خیلی مبحث مهمی بود.
ولی فکنم برای جلوگیری از اکثر حمله ها این کار انجام بشه.
ممنون

djtrex
سه شنبه 19 آبان 1394, 22:22 عصر
تا جایی که من مطالعه داشتم توکن گذاری خیلی مبحث مهمی بود.
ولی فکنم برای جلوگیری از اکثر حمله ها این کار انجام بشه.
ممنون

اگه فکر میکنید با توکن میشه جلوی روبات رو گرفت همونطور که دوست عزیز دیگه هم گفتند کاملا در اشتباهید:



<?php


require_once __DIR__ . '/vendor/autoload.php';


$client = new GuzzleHttp\Client([
'cookies' => true
]);


$contents = $client->get('http://example.com/contact-us')
->getBody()
->getContents();


$crawler = new Symfony\Component\DomCrawler\Crawler($contents);
$token = $crawler->filter('input[name="_token"]')
->first()
->attr('value');


$client->post('http://example.com/send-message', [
'form_params' => [
'subject' => 'I am a robot!',
'message' => 'I am going to spam you!',
'_token' => $token
]
]);


این کد اول صفحه تماس با ما رو باز میکنه بعد توکن رو میخونه و در نهایت توکن + مقادیر دیگه فرم رو برای ارسال پیام پست میکنه . (در ضمن کوکی و سشن رو هم توی درخواست اول ذخیره میکنه و درخواست بعدی براتون میفرسته!)

از توکن یا csrf_token برای جلوگیری از حملات CSRF انجام میشه. برای مثال شما توی پنل ادمینتون لاگین هستید یه سایتی رو هم توی تب دیگه باز میکنید که چنین کدی رو توی سایتش گذاشته (ممکنه توی یه iframe باشه):



<form id="csrf-form" action="http://example.com/admin/users/create" method="POST">
<input type="hidden" name="username" value="hacker-username" />
<input type="hidden" name="password" value="hacked-password" />
<input type="hidden" name="role" value="admin" />
</form>
<script>
document.getElementById('csrf-form').submit();
</script>


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

در مورد CSRF میتونید اینجا بخونید:
https://www.owasp.org/index.php/Cross-Site_Request_Forgery_(CSRF)

---------------------
با توجه به تاپیک های دیگه ای هم که ارسال کرده اید، پیشنهاد میکنم حتما منابع مطالعاتیتون رو عوض کنید. :)