значит надо при регистрации вывести полученный через password_hash пароль и записать на бумажке
потом запросить сохраненный из БД и сравнить
и потом разбираться, почему они не совпадают
мне кажется у него у него multi-tenant приложение
хотя конечно нельзя поручиться что весь этот зоопарк просто от неграмотности, и проще тупо от него избавиться, оставив одну
Идет заседание ЦК КПСС.
Министр сельского хозяйства зачитывает доклад о том, что в колхозах болеют коровы. Никто не знает, как лечить.
Брежнев: нарисуйте перед каждой коровой зеленый ромбик.
Ну, издали постановление, во всех коровниках кампания по рисованию.
Следующее заседание. Все равно коровы болеют.
Брежнев: нарисуйте перед каждой коровой фиолетовый треугольник.
Ну, опять кампания, доярки в художниц переквалифицируются...
Опять заседание.
Министр докладывает, что все коровы подохли.
Брежнев: жаль. Я хотел предложить ещё много вариантов...
Скорее всего этому экстремалу не нужно доставать все картинки сразу, а надо по одной.
то есть идея про open() и close() один раз - не одинраз не проканает.
Megas, как-то не вяжется вместе
- лично работал [c] Mongo
- потратить кучу времени на переезд, к примеру, на ту же MongoDB
- На in-memory БД памяти не напасешься
Какое-то из этих утверждений явно не стыкуется с остальными
Etherata, если используется и mysqli_real_escape_string и кавычки, то и не будет ошибок. В этом-то смысл этой функции и заключается. Она корректно форматирует строки, как раз чтобы не было ошибок. А не будет ошибок - не будет и инъекции.
Etherata, чтобы найти инъекцию, надо чтобы запросы сообщали об ошибках.
Если запрос SELECT * FROM users where id = 1; drop table testtable; не сможет выполниться, то он вызовет синтаксическую ошибку. Что будет означать возможность инъекции.
А запрос вида SELECT * FROM users where id = '1; drop table testtable;' ошибку не вызовет. Следовательно, он безопасен.
Но нам надо чтобы ошибка была в любом случае, а не только когда запрос не сработал.
поэтому надо сделать заведомо ошибочный запрос.
Например, SELECT * FROM users where id = 1'
То есть передавать в запрос 1'
Если код сообщает программисту об ошибках, то этим "волшебным словом" можно вполне тестировать на уязвимости.
Примечание: об ошибках код должен сообщать только программисту. А не вываливать, как это принято у вайтишников, все кишки прямо наружу. Потому что сообщение об ошибке - это самое ценное, что только может помочь атакующему.
А, главное, в чем смысл писать код по два раза, сначала кривой, а потом нормальный?