PDA

View Full Version : امنیت صفحه بندی



ravand
چهارشنبه 25 دی 1392, 18:52 عصر
سلام
من یه برنامه ی صفحه بندی نوشتم. همه ی کدهاش داخل یه صفحه اس به نام safe.php
بعد برای امنیتش از روش زیر استفاده کردم:

if((!isset($_GET["page"])) or ($_GET["page"]=="") or (!is_numeric($_GET["page"]))){
$pagei =1;
}else{
$pagei =$_GET['page'];
}
برای اینکه کل کدهای من داخل یه فایل هست یعنی safe.php . و خبری از id.php نیست. برای همین اگه به صورت زیر عمل بکنیم:

if((!isset($_GET["page"])) or ($_GET["page"]=="") or (!is_numeric($_GET["page"]))){
header("Location:HTTP/1.0 404 Not Found");
exit;
}else{
$pagei =$_GET['page'];
}
به محض باز شدن صفحه ی safe.php اخطار 404 داده میشه.
روش اول که گفتم به نظر شما از نظر امنیت خوبه یا نه؟
متشکرم.

metal gear solid 4
چهارشنبه 25 دی 1392, 23:42 عصر
خیر. مشکلی نداره. روش اول رو استفاده کنید. البته یا از abs استفاده کنید یا بررسی کنید که عددی که به عنوان پارامتر دریافت میشه منفی نباشه.
به علاوه intval هم به دردتون خواهد خورد. قسمت صحیح پارامتر ورودی رو برمیگردونه. ممکنه عدد اعشاری وارد شده باشه.

mojgan.dashti71
پنج شنبه 26 دی 1392, 09:17 صبح
من به صورت زیر استفاده میکنم

if(isset($_GET['page'])){
$page=(is_numeric($_GET['page']))?abs(intval($_GET['page'])):1;
}else{
$page=1;
}

lexical_error
جمعه 02 اسفند 1392, 00:25 صبح
سلام
من یه برنامه ی صفحه بندی نوشتم. همه ی کدهاش داخل یه صفحه اس به نام safe.php
بعد برای امنیتش از روش زیر استفاده کردم:

if((!isset($_GET["page"])) or ($_GET["page"]=="") or (!is_numeric($_GET["page"]))){
$pagei =1;
}else{
$pagei =$_GET['page'];
}
برای اینکه کل کدهای من داخل یه فایل هست یعنی safe.php . و خبری از id.php نیست. برای همین اگه به صورت زیر عمل بکنیم:

if((!isset($_GET["page"])) or ($_GET["page"]=="") or (!is_numeric($_GET["page"]))){
header("Location:HTTP/1.0 404 Not Found");
exit;
}else{
$pagei =$_GET['page'];
}
به محض باز شدن صفحه ی safe.php اخطار 404 داده میشه.
روش اول که گفتم به نظر شما از نظر امنیت خوبه یا نه؟
متشکرم.

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

ravand
جمعه 02 اسفند 1392, 08:35 صبح
منظورم همین شماره بندی صفحات هست. اگه دیده باشید پایین برخی سایت ها دکمه هایی هست از یک مثلا تا 7 که هر شماره برای یک صفحه از سایت هست. ما چون فقط عدد ارسال میکنیم برای همین باید از اون دستور is_numberic استفاده کنیم. و isset هم برای بررسی وجود داشتن شماره هست.