TGViewer
| AmirHossein | | AmirHossein | @amirhdeveloper · 610 subscribers
Post #93 103
#security #bug
دسته بندی Cross-Site Attacks

باگ Cross-Site Request Forgery (CSRF) یک نوع باگ امنیتی است که در برنامه‌ها و وب‌سایت‌ها رخ می‌دهد. در CSRF، حمله‌کننده با استفاده از اجرای برخی از درخواست‌ها از طریق کاربران، عملیات‌های خطرناک را با اجازه‌ی کاربر اجرا می‌کند. به عبارت دیگر، کاربر در وب‌سایتی وارد شده است که مخرب است و بدون اطلاع از آن، عملیات‌های خطرناک را در سایت‌ها و برنامه‌ها دیگر اجرا می‌کند.

مثال:

فرض کنید یک برنامه وب وجود دارد که کاربران می‌توانند با استفاده از فرمی مبلغی را به حساب خود اضافه کنند. کد PHP به صورت زیر است:

<?php
session_start();
if ($_SERVER['REQUEST_METHOD'] === 'POST') {
$amount = $_POST['amount'];
$user_id = $_SESSION['user_id'];
// Add amount to user account
}
?>
<!DOCTYPE html>
<html>
<head>
<title>Account Page</title>
</head>
<body>
<h1>Welcome, User!</h1>
<form action="" method="post">
<label for="amount">Amount:</label>
<input type="text" name="amount" id="amount">
<input type="submit" value="Add">
</form>
</body>
</html>

حمله‌کننده می‌تواند یک صفحه مخرب (مثلاً با نام csrf.html) ایجاد کند و کد مخرب زیر را در آن قرار دهد:
<html>
<body>
<form action="http://victim-website.com" method="post">
<input type="hidden" name="amount" value="1000">
</form>
<script>
document.forms[0].submit();
</script>
</body>
</html>

وقتی کاربری که وارد برنامه‌ی مخرب حمله‌کننده شده است، از طریق مرورگر به صفحه csrf.html می‌رود، این صفحه یک درخواست POST به آدرس victim-website.com ارسال می‌کند و مبلغ 1000 به حساب کاربر در این وب‌سایت اضافه می‌شود.

روش های جلوگیری:

1- اضافه کردن یک توکن CSRF به فرم‌ها تا اطمینان حاصل شود که درخواست‌ها توسط خود کاربر ارسال می‌شوند و نه از طریق حمله‌کننده.

2- بررسی Referer Header که نشان می‌دهد از کدام سایت درخواست ارسال شده است. اگر نشان‌دهنده سایت خارجی باشد، درخواست رد شود.

3- اجازه دسترسی به کوکی‌ها تنها به دامنه‌های مشخص داده شود.

4- فقط از متود POST برای عملیات‌هایی که تغییر‌های حساب‌های کاربری می‌آورند، استفاده کنید.

.
More from @amirhdeveloper
  1. Oct 7, 2026بیاید از قدرت های لاراگرام بگم لاراگرام یک full-stack و ai-ready فریمورک برای توسعه ربات ه…
  2. Sep 30, 2026پکیج LaraGram Sentinel منتشر شد؛ یک پنل مانیتورینگ که هیچ چیزی از زیر دستش در نمی‌ره! تمام…
  3. Sep 23, 2026از امروز با کاهش شدید حاکرها مواجه میشیم
  4. Sep 19, 2026🔴 سوال سوم دو Region دارید: US-East و EU-West. کاربران در هر دو Region هستند. سیستم باید…
  5. Sep 19, 2026🟠 سوال دوم فرض کنید Service A به Service B درخواست می‌زند. B به‌دلیل overload، latency با…
  6. Sep 19, 2026🟢 سوال اول فرض کنید یک سرویس backend داریم که به PostgreSQL وصل می‌شود. تعداد requestها ن…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →