PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи

Страниц (686): В начало « ... 3 4 5 6 [7] 8 9 10 11 ... » В конец

> Найдено сообщений: 10281
DeepVarvar Отправлено: 23 Ноября, 2015 - 13:17:34 • Тема: База данных • Форум: Вопросы новичков

Ответов: 9
Просмотров: 436
soulner вот ответь внятно:
Нафейхоа заколбашивать строку в сущности при записи в БД?
Только для того чтобы потом обратно расколбашивать?
DeepVarvar Отправлено: 23 Ноября, 2015 - 13:14:27 • Тема: PDO внутри функции • Форум: Работа с СУБД

Ответов: 28
Просмотров: 5119
andrewkard пишет:
На первых порах
Ты же знаешь что переучиваться сложнее чем сразу учиться правильно.
Не надо так советовать, у нас из без этого поповщины хватает.
andrewkard пишет:
А что лучше 5000 функций в коде

Три класса (или на худой конец файла с десятком ф-ций).
И пусть пишет global -- это гораздо правильнее (в контексте, да, он их не знает, но все же классов, их области видимости и инкапсуляции) чем тупоголовая передача параметров.
При рефакторе будет легче поудалять кучу глобалов и понатыкать $this, чем перепиливать апи с кол-вом и порядком аргументов.
DeepVarvar Отправлено: 23 Ноября, 2015 - 13:08:39 • Тема: Нужно ли сверять токен в БД? • Форум: HTTP и PHP

Ответов: 76
Просмотров: 9645
Мелкий пишет:
Сross Site Request Forgery
Т.е. если есть bazz.foo.bar и foo.bar то они это одно и то же?
Тогда я ушел проводить НЕцсрф на *.blog.com
DeepVarvar Отправлено: 23 Ноября, 2015 - 13:04:28 • Тема: помгите разобратся с ошибкой на php • Форум: Программирование на PHP

Ответов: 12
Просмотров: 1512
andrewkard пишет:
LIMIT :numRows
И чо, правда работает?
DeepVarvar Отправлено: 23 Ноября, 2015 - 11:33:47 • Тема: PDO внутри функции • Форум: Работа с СУБД

Ответов: 28
Просмотров: 5119
andrewkard пишет:
$db->GetUser

andrewkard пишет:
$db->GetFoo

andrewkard пишет:
$db->GetBar

andrewkard пишет:
$db->GetBazz

........ прокручиваем пять тысяч строчек ........
andrewkard пишет:
$db->GetAnotherData

andrewkard пишет:
$db->GetMoreAnotherData

Угадал?
И вообще, почему бидэ должно уметь что-то кроме самого бидэ?
DeepVarvar Отправлено: 23 Ноября, 2015 - 04:03:02 • Тема: Условие, не зависящее от типа переменной • Форум: Вопросы новичков

Ответов: 3
Просмотров: 196
С разморозкой! Щас почти у всех ЯП "высокого уровня" такая родовая травма.
DeepVarvar Отправлено: 23 Ноября, 2015 - 04:00:43 • Тема: Когда нужно производить защиту от каких-либо угроз при входных данных? • Форум: Вопросы новичков

Ответов: 1
Просмотров: 126
Всегда.
DeepVarvar Отправлено: 23 Ноября, 2015 - 03:50:19 • Тема: Нужно ли сверять токен в БД? • Форум: HTTP и PHP

Ответов: 76
Просмотров: 9645
Сорики за долгущщий ответ, были дела, продолжим!

Мелкий пишет:
Утверждения противоречат друг другу, следовательно, выбери какое-то одно утверждение либо докажи отсутствие противоречия.
Наш реферер проверяется именно в контексте CSRF, а не митм. А любая CSRF содержит в себе митм. Поэтому я и сказал "в этом контексте".
Мелкий пишет:
при старте сессии генерируется токен
И даже если он меняется, то:

а) От чужого хоста это спасает, да...

б) На довренном домене/поддомене НЕ спасает, т.к. атакующий может сходить на нужную страницу аяксом и сматчить оттуда токен, затем сфрмировав запрос с токеном -- сделать какашку.
Только проблема тут уже не в CSRF, а в XSS, как я и говорил ранее.

teddy пишет:
бла-бла-бла
Согласен.
teddy пишет:
Если генерировать токен для GET параметра, и сверять этот токен ТОЛЬКО при изменении данных
Ты этот токен будешь передавать в гет-форму или гет-строку для пост-формы, которая и лежит в замазанном подгруженном айфрейме, иначе сравнивать будет не с чем.
teddy пишет:
С реферером такое не прокатит потому что ты просто убьешь любые переходы со сторонних ресурсов, что конечно же недопустимо, если речь идет не о админке
Нет же, изменение данных даже вне админки уже подразумевает точки доступа явно не являющиеся тупым ридонли, в том числе и местом входа с любого внешнего ресурса.
teddy пишет:
Ну, кто что думает?
Я пока остался при своем мнении -- реферер. Ибо реферер проще токена в реализации.
Спойлер (Отобразить)
DeepVarvar Отправлено: 07 Ноября, 2015 - 22:20:54 • Тема: Нужно ли сверять токен в БД? • Форум: HTTP и PHP

Ответов: 76
Просмотров: 9645
Мелкий пишет:
ну так?
Я расписал что будет и как в случае с формой.
Мелкий пишет:
Достаточно просто его убить
Убить === подделать.
DeepVarvar Отправлено: 07 Ноября, 2015 - 17:46:21 • Тема: Нужно ли сверять токен в БД? • Форум: HTTP и PHP

Ответов: 76
Просмотров: 9645
teddy пишет:
isset вполне нормальный выбор, если не требуется проверять NULL-ы

teddy пишет:
Лучше проверить например на isset, потому что данного ключа может просто не существовать

Так существование или нуллы?
teddy пишет:
наивный Попробуй ответить на вопрос Мелкого

Мелкий пишет:
какая тебе проблема попросить браузер пользователя сделать не GET-запрос на атакуемую страницу, а тот же POST?

Аяксом, вестимо, только, аяксом (ну ладно, еще форму в ифрейм отправить). Но!!!

1) Если мы говорим о том же самом сайте, то у нас XSS, а это другая проблема, не так ли?

2) Если каким-то образом атакующий узнал о том, что жертва ходит на другой конкретный сайт, то,
даже при условии что, на стороне другого сайта будет XSS, или сторонний сайт принадлежит атакующему:

а) для аякса (1): сработает COP (Cross Origin Policy).
б) для аякса (2): при условии что домен "родственный", ты не подумал про CORS.
в) и для аякса (3) и для ифрейма (1): ты не подумал про COP для POST (проверить реферер).

Бонус: реферер статичен, в отличии от токенов, и не требует соотв. обвязки и пинания туда-сюда-обратно.
И давай не будем говорить что реферер можно подделать -- в этом контексте у нас не MiTM.
DeepVarvar Отправлено: 07 Ноября, 2015 - 04:22:54 • Тема: не совпадает логин • Форум: Вопросы новичков

Ответов: 9
Просмотров: 447
Вот так тоже работать не будет:
PHP:
скопировать код в буфер обмена
  1. $bd = die('Подсойдинения к базе не произошло') or array_key_exists('login', $_POST);
  2. $Row = mysqli_query('tutorlals', $CONNECT);
  3. $bd = mysql_select_db(mysqli_fetch_assoc($CONNECT, "SELECT `login` FROM `users`WHERE login = '$_POST[login]' LIMIT 1")) or die($_POST);
  4.          if (error_reporting(-1) && mysql_connect('root','localhost')) {echo 'FALSE login';}
  5.         else {echo 'TRUE login';}

Это я к тому, что нужно понимать что ты собираешься закодить.
Возьми листочек бумажки и распиши по шагам что ты должен сделать и в каком порядке.
DeepVarvar Отправлено: 07 Ноября, 2015 - 03:57:45 • Тема: не совпадает логин • Форум: Вопросы новичков

Ответов: 9
Просмотров: 447
Полностью? Ни в коем случае! Иначе ничему не научишься.

1) WHERE login = '$_POST[login]' LIMIT 1
2) mysql_fetch_assoc
3) Юзать http://php.net/manual/ru/book.mysqli.php или http://php.net/manual/ru/book.pdo.php
4) if ($_POST && array_key_exists('login', $_POST)) { ...
5) error_reporting
DeepVarvar Отправлено: 07 Ноября, 2015 - 03:46:42 • Тема: не совпадает логин • Форум: Вопросы новичков

Ответов: 9
Просмотров: 447
toha2503 пишет:
$bd
А вот и подмывательное БИДЭ, давно я его не видел.
Или это BazaDannyh? И как тогда это переводится на английский?

1) Ты забыл поставить LIMIT 1
2) Кто за тебя будет фетчить результат?
3) mysql_ устарело и будет удалена (если уже не удалена) в новых версиях пхп.
4) $_POST['login']может вообще не быть если форму не сабмитили.
5) Включай полный уровень вывода ошибок, без него жизни нет.
6) Читать: http://forum.php.su/topic.php?fo...33&topic=793
DeepVarvar Отправлено: 07 Ноября, 2015 - 03:37:31 • Тема: Номер по порядку в базе. • Форум: Вопросы новичков

Ответов: 7
Просмотров: 348
ytrewq123 пишет:
$rezultat
ytrewq123 пишет:
$stroka
ytrewq123 пишет:
$soedinenie
ytrewq123 пишет:
$zapros

Чего мелочиться, сразу бы вот так писал (работает же):
PHP:
скопировать код в буфер обмена
  1. $кваз = 0;
  2. while ($строка = mysqli_fetch_array($результат, MYSQLI_ASSOC)) {
  3.     $кваз++;
Хуже уже точно не будет.
ytrewq123 пишет:
Результата пока нет
И не нужен.
DeepVarvar Отправлено: 07 Ноября, 2015 - 03:24:36 • Тема: Нужно ли сверять токен в БД? • Форум: HTTP и PHP

Ответов: 76
Просмотров: 9645
teddy пишет:
проверить например на isset, потому что данного ключа может просто не существовать
Не надо нам тут гвозди забивать двуручной пилой.

Deonis пишет:
Устроит


1) Перенести хранение сессии в БД, полностью и чтоб она только там была.

2) Стартовать сессию (ага, к БД не забудь подключиться) всегда, вне зависимости от того кто это, гость или пользак.
И если гость -- формировать идентичный профилю пользака объект, с пометкой что это гостевая роль.

3) Перевести все, требующие защиты от CSRF места, на POST/PUT/DELETE запросы.
После чего не использовать CSRF-токен вообще.

Только учти что эти три пункта легко могут обеспечить тебя гемором на пол года вперед.
Поэтому определись:

а) готов ли ты к долгоделу?
б) готов ли ты велосипедить?
в) может лучше взять серьезный фреймворк? там все это есть
г) может оставить все как есть?

Страниц (686): В начало « ... 3 4 5 6 [7] 8 9 10 11 ... » В конец
Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB