PDA

View Full Version : hide url



majoran
دوشنبه 22 بهمن 1386, 00:00 صبح
با سلام به دوستان گرامی
آقا من وقتی یک ارجا به فرم دیگه دارم و می خوام اطلاعاتم رو از همین فرم با خودم به فرم جدید ببرم به این صورت میشه http://localhost/site/dars/edit_post.php?id=24
حالا اگه من بخوام از قسمت ?id=24 (http://localhost/site/dars/edit_post.php?id=24) فاکتور گرفته بشه باید چیکار کنم .

Bahram0110
دوشنبه 22 بهمن 1386, 12:39 عصر
منظورتونت از فاکتور گرفته بشه چیه؟؟؟؟

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



if (!empty($_GET['id'])) {
$id = $_GET['id'];
}

majoran
دوشنبه 22 بهمن 1386, 14:54 عصر
منظور من اینه که کاربر من نفهمه مقدار ارسالیid من چنده یعنی در نوار آدرس فقط مسیر اصلی فایل رو نمایش بدم
http://localhost/site/dars/edit_post.php?id=24
بشه
http://localhost/site/dars/edit_post.php
و همه کار ها هم درست پیش بره

Bahram0110
دوشنبه 22 بهمن 1386, 18:19 عصر
از $_POST استفاده کن
(تکست باکس مخفی)

Bahram0110
دوشنبه 22 بهمن 1386, 18:21 عصر
یا اینکه می تونی از Session استفاده کنی...

moohssenn
دوشنبه 22 بهمن 1386, 19:01 عصر
البته میتونید پارامتر ارسالی را کد کرده و ارسال کنید تا اگه دیده شدم به درد نخوره

majoran
دوشنبه 22 بهمن 1386, 21:51 عصر
از رااهنمایی هاتون متشکرم ولی اگه لظف کنید یه مثال کامل برام بزنید منو شرمنده خودتون کردید آخه این هکر ها رو اوردند به sql injection خیلی برام مهمه که چطوری محدودیت ایجاد کنم

محمد.مولانا
سه شنبه 23 بهمن 1386, 01:01 صبح
sql injection رو می تونی با راه های دیگه ای هم مهار کنی.
مثلا کد زیر رو در یه فایل جا بده و در تمام صفحات اون فایل رو اینکلود کن:


foreach ($_GET as $check_url) {
if ((eregi("<[^>]*script*\"?[^>]*>", $check_url)) || (eregi("<[^>]*object*\"?[^>]*>", $check_url)) ||
(eregi("<[^>]*iframe*\"?[^>]*>", $check_url)) || (eregi("<[^>]*applet*\"?[^>]*>", $check_url)) ||
(eregi("<[^>]*meta*\"?[^>]*>", $check_url)) || (eregi("<[^>]*style*\"?[^>]*>", $check_url)) ||
(eregi("<[^>]*form*\"?[^>]*>", $check_url)) || (eregi("\([^>]*\"?[^)]*\)", $check_url)) ||
(eregi("\"", $check_url))) {
die ();
}
}
unset($check_url);

به همین راحتی

Mah
سه شنبه 23 بهمن 1386, 07:32 صبح
سلام .
دوست من کافیست متد ارسال پارامترهای خود را در فرمی که برای سرور می فرستی post قرار دهی . در سمت سرور نیز همانطور که آقا بهرام گفت از $_POST برای گرفتن مقادیر فرم استفاده کنی .

sample.htm


<form metod='post' action='test1.php'>
<input type=text value='test' name='txtInput' />

<input type=submit>

</form>
test.php


echo $_POST['txtInput'];

برای جلوگیری از Injection نیز کد آقای مولانا مناسب است .
ضمن اینکه می توانی در سمت کلاینت از ورود کارکترهای خطرناک مثل ' " ; / */ و... جلوگیری کنید .

موفق باشید .

majoran
سه شنبه 23 بهمن 1386, 08:44 صبح
آقا دمتون گرم آخر هرچی مرامین شما ها خیلی لطف کردید و ممنون

Bahram0110
سه شنبه 23 بهمن 1386, 09:22 صبح
سلام .
ضمن اینکه می توانی در سمت کلاینت از ورود کارکترهای خطرناک مثل ' " ; / */ و... جلوگیری کنید .

کسی که بخواد به سایت حمله کنه! نیازی به فرم اصلی ما نداره، خودش یه فرم جدید می سازه
پس هیچ وقت به این روش تکیه نکن
همیشه تو سمت سرور ورودی رو چک کن

Mah
سه شنبه 23 بهمن 1386, 09:47 صبح
سلام .
Bahram0110 (http://barnamenevis.org/forum/member.php?u=14281) : شما درست می فرمائید .
من همیشه سعی می کنم ، تمامی راه حل ها را ارائه دهم .

ما نمی توانیم یک سیستم را 100% امن نمائیم . بلکه با ایجاد موانع تاخیر در نفوذ ایجاد می کنیم .
اولین مانع نیز چک در سمت کلاینت است تا کمی از سرعت هکر کاسته شود (خود هکر مجبور به نوشتن کمی کد شود .)

موفق باشید .