Re: Створення браузерки
Круто, тепер у мене у грі стать не men чи women, а admin
Та, має бути "admins" - у множині же.
Ви не увійшли. Будь ласка, увійдіть або зареєструйтесь.
Ласкаво просимо вас на україномовний форум з програмування, веб-дизайну, SEO та всього пов'язаного з інтернетом та комп'ютерами.
Будемо вдячні, якщо ви поділитись посиланням на Replace.org.ua на інших ресурсах.
Для того щоб створювати теми та надсилати повідомлення вам потрібно Зареєструватись.
Український форум програмістів → Обговорення → Створення браузерки
Сторінки Попередня 1 2 3 4 5 … 10 Наступна
Для відправлення відповіді ви повинні увійти або зареєструватися
Круто, тепер у мене у грі стать не men чи women, а admin
Та, має бути "admins" - у множині же.
Привіт. У мене проблема з переходом між локаціями. Гравець знаходиться на локації 1
http://middleages.96.lt/include/mapa.php?loc=1
він може ввести в строку url
http://middleages.96.lt/include/mapa.php?loc=26
і зразу перейде на локацію 26 без проходження через локацію 2,3,4,5,6 ....
Як цьому можна запобігти?
Зберігайте локацію в базі чи деінде, а не в адресі сторінки, і буде вам щастя.
Привіт. У мене проблема з переходом між локаціями. Гравець знаходиться на локації 1
http://middleages.96.lt/include/mapa.php?loc=1
він може ввести в строку url
http://middleages.96.lt/include/mapa.php?loc=26
і зразу перейде на локацію 26 без проходження через локацію 2,3,4,5,6 ....
Як цьому можна запобігти?
Винести параметр локації у POST, нє?
(звісно, якщо ви не через $_REQUEST працюєте при цьому)
Faraon написав:Привіт. У мене проблема з переходом між локаціями. Гравець знаходиться на локації 1
http://middleages.96.lt/include/mapa.php?loc=1
він може ввести в строку url
http://middleages.96.lt/include/mapa.php?loc=26
і зразу перейде на локацію 26 без проходження через локацію 2,3,4,5,6 ....
Як цьому можна запобігти?Винести параметр локації у POST, нє?
(звісно, якщо ви не через $_REQUEST працюєте при цьому)
А що мішає надіслати POST запит ?
Bartash написав:Faraon написав:Привіт. У мене проблема з переходом між локаціями. Гравець знаходиться на локації 1
http://middleages.96.lt/include/mapa.php?loc=1
він може ввести в строку url
http://middleages.96.lt/include/mapa.php?loc=26
і зразу перейде на локацію 26 без проходження через локацію 2,3,4,5,6 ....
Як цьому можна запобігти?Винести параметр локації у POST, нє?
(звісно, якщо ви не через $_REQUEST працюєте при цьому)А що мішає надіслати POST запит ?
Якщо ви про текст у дужках: при використанні $_REQUEST гет від поста мало відрізнятиметься.
POST теж можна підробити. Ще раз кажу: пишіть в базу.
Зберігайте локацію в базі чи деінде, а не в адресі сторінки, і буде вам щастя.
А як це зберігати локацію в базі? Хіба всі дані про локацію та переходи між локаціями я не в базі зберігаю?!
В мене ж все в базі зберагається!
Ну, якщо щось зберігається в адресі - значить, воно зберігається не в базі. К.О.
Ну, якщо щось зберігається в адресі - значить, воно зберігається не в базі. К.О.
В адресі зберігається тільки ід локації яка буде відображатися на сторінці, і все... більше нічого!!!
Але ж ід мусить знаходитися в урл інакше як гравець може по іншому переміщатися?
Дорогі форумчани, допоможіть мені з цією браузеркою!)))
Я дещо її допрацював, добавив нові функції в ігру! Хто має кілька вільних хвилин загляніть на сайт з ігрою, і підкажіть мені що там не вистарчає на вашу думку. І ще я б хотів попросити вашої допомоги в захисті ігри від хацкерів!
Я прочитав ось цю тему "як захиститися від sql - інєкцій"
http://www.rozrobka.com/blog/php/737.html
Зробив все так як там написано! Також я не сумніваюся що є ще інші способи взлому. Підкажіть які саме та як від них можна захиститися. Також ще виникла проблема з входом в ігру. Коли ми вписали логін і пароль і нажали кнопку ввійти то після цього ми маємо перевіряти чи є такий користувач та чи збігаються паролі.
код:
if(isset($_POST['enter'])) {
$e_login = $_POST['e_login'];
$e_password = md5($_POST['e_password']);
$query = mysql_query ("SELECT * FROM users WHERE login = '$e_login'");
$user_data = mysql_fetch_array($query);
if ($user_data['password'] == $e_password) {
$_SESSION['login'] = $e_login;
$_SESSION['password'] = $e_password;
$date = date("Y-m-d H:i:s"); // текущая дата
$qertn = mysql_query (" UPDATE users SET online='online', last_active_time='$date' WHERE login='$e_login' ");
header('Location: akk.php');
}
else {
echo "<br><br><b><div id=red><center>Не верний пароль или логин</center></div></b>";
}
}
і якщо все правельно то нас має перенаправляти на сторінку akk.php, але ось виникає проблема...
коли ми ввели дані і нажали вхід то при перезагрузці сторінки нічого не відбулося, а якщо ми перезагрузимо сторінку повторно то аж тоді висвічується наш логін і зявляється кнопки для входу в профіль. Незнаю чи добре я пояснив проблему, якщо ні то просто попробуйте ввійти в ігру і думаю ви зрозумієте))))
Чому не спрацьовує перенаправлення: ?
header('Location: akk.php');
Те що ви прочитали статтю про sql інєкції я не сумніваюсь, а от те чи ви її зрозуміли))
$e_login = $_POST['e_login'];
$query = mysql_query ("SELECT * FROM users WHERE login = '$e_login'");
Чому не спрацьовує перенаправлення: ?
можливо хедер уже выдправлений. Почитайте лог помилок
<meta http-equiv="content-type" content="application/xhtml+xml; charset=UTF-8" />
для чого вам XML ?
Те що ви прочитали статтю про sql інєкції я не сумніваюсь, а от те чи ви її зрозуміли))
Ну здається там нічого складного немає! Потрібно тільки перевіряти все шр вводить користувач!
для чого вам XML ?
Видалив!
можливо хедер уже выдправлений. Почитайте лог помилок
А де можна знайти цей лог?
Ви має наувазі консоль?)
В консолі є тільки:
SEC7115: Стили :visited и :link могут отличаться только по цвету. Некоторые стили не были применены к стилю :visited.
Все! Проблема вирішена! Я просто перемістив цей уривок коду з середини в самий початок і все запрацювало)))
Тепер допоможіть мені будь ласка захистити скрипт (залатати дірки).
Що мені для цього потрібно знати? Які ще є види атак?
$e_login = $_POST['e_login'];
$query = mysql_query ("SELECT * FROM users WHERE login = '$e_login'");
$e_login = $_POST['e_login']; $query = mysql_query ("SELECT * FROM users WHERE login = '$e_login'");
▼тільки без образ
упс... зараз виправим! Дякую!
Знайшов ще кілька незахищених місць завдяки Хантеру. Здається все! Більше таких дір немає!
Знайшов ще кілька незахищених місць завдяки Хантеру. Здається все! Більше таких дір немає!
Ну хоч комусь я чимось допоміг.
P.S: вприницпі з самого початку - це funivan Вам вказав, на вразливість.