PDA

View Full Version : سوال: آیا خالی گذاشتن صفت اکشن توی فرمها، مشکل امنیتی ایجاد می کنه؟



i-php-i
چهارشنبه 21 اردیبهشت 1390, 10:57 صبح
آیا خالی گذاشتن صفت اکشن توی فرمها(مثل فرم زیر)، مشکل امنیتی ایجاد می کنه؟


<form id="form1" name="form1" method="post" action="">

Keramatifar
چهارشنبه 21 اردیبهشت 1390, 11:12 صبح
به اون صورتیکه تبدیل به فاجعه بشه نه، اما خوب مشکلاتی ایجاد می کنه، مثلا هکر می تونه اطلاعات رو به هر فرمی که خودش دلش می خواد پست کنه
اما اصلا از نظر منطقی فرمی که اکشن نداشته باشه کاربردی نداره، چرا باید همچین فررمی توی صفحه باشه؟

i-php-i
چهارشنبه 21 اردیبهشت 1390, 12:25 عصر
به اون صورتیکه تبدیل به فاجعه بشه نه، اما خوب مشکلاتی ایجاد می کنه، مثلا هکر می تونه اطلاعات رو به هر فرمی که خودش دلش می خواد پست کنه
اما اصلا از نظر منطقی فرمی که اکشن نداشته باشه کاربردی نداره، چرا باید همچین فررمی توی صفحه باشه؟
من آدرسهایی که داری index.php هستن رو به آدرسهای بدون index.php ریدایرکت می کنم.

از اونجایی که فرم و اسکریپت پردازشگر داده های فرم هر دو توی index.php هستن، با ریدایرکت شدن اطلاعات فرم از بین می ره.

حالا می خوام مقدار صفت اکشن رو خالی بذارم.

در کل نظر شما چیه؟

J.Masomi
چهارشنبه 21 اردیبهشت 1390, 14:07 عصر
با سلام
منظورتون از ریدایرکت چی هست؟

ولی در کل اگر فرمی action نداشته باشه فرم را به همون اسکریپتی که فرم داخلشه ارسال می کنه :



<?php
print_r($_POST);
?>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">

<head>
<meta http-equiv="content-type" content="text/html; charset=utf-8" />
<meta name="author" content="masomi" />

<title>From</title>
</head>

<body>
<br/><br/>
<form method="post" action="">
test name1 : <input type="text" name="tname1" /><br/>
test name2 : <input type="text" name="tname2" /><br/>

<input type="submit" name="sub" value="Send" />
</form>

</body>
</html>

برای کنترل بهتر هم میتوانید از یک فیلد کنترلی جهت مطمئن شدن از ارسال فرم استفاده کنید. مثلاً action="?action=sendFrom" در اینجا با استفاده از $_REQUEST میتوان چک کرد فرم ارسال شده یا خیر.

xoogle.ir
چهارشنبه 21 اردیبهشت 1390, 18:37 عصر
گمون نکنم مشکلی ایجاد کنه چون برابر است با نوشتن اسم همون فایلی که فرم داخلش هست.

i-php-i
چهارشنبه 21 اردیبهشت 1390, 20:42 عصر
در این مورد نظرات متفاوتی داده شده.

کدوم رو باید قبول کنم؟

xoogle.ir
چهارشنبه 21 اردیبهشت 1390, 21:51 عصر
ایرادی که آقای کرامتی گفتن، در همه حالات وجود داره چون حتی اگر اکشن فرم تعیین شده باشه هم هکر میتونه به راحتی اکشن فرم رو ادیت کنه و به هر فرمی که دلش میخاد اطلاعات رو ارسال کنه.
مگر اینکه منظور ایشون چیز دیگه ای باشه که من متوجه نشده باشم.

MMSHFE
پنج شنبه 22 اردیبهشت 1390, 09:26 صبح
با سلام، براي چندمين بار تأكيد ميكنم بنا با دلايل امنيتي، از REQUEST_$ استفاده نكنيد. اگه با داده هاي get كار دارين، از GET_$ و اگه با مقادير post كار دارين، از POST_$ استفاده كنيد. استفاده از REQUEST_$ به هيچ عنوان توصيه نميشه.
درمورد سؤالتون هم تا جايي كه بررسي كردم، مشكل خاصي ايجاد نميشه، البته اگر به اين شكل بررسي كنيد كه اطلاعات دريافت شده حتماً ازطريق خود صفحه ارسال شده باشند:


if($_SERVER['HTTP_REFERER'] == $_SERVER['PHP_SELF'])
{
//process the data of the form here
}

موفق باشيد.