Пишу плагин для работы сайта и параллельно API возник вопрос прилично ли показывать имена таблиц в выдаче sql ? После запроса к базе php выдаёт [{"id":3333,"id_job_sait":"33333", и так далее...... Я думаю можно ли так оставить или всё же скрыть передавая например массив с цифрами [{"0":3333,"1":"33333", и так далее..... С таким телом труднее работать, но как мне кажется более защищённый способ. Прокомментируйте кто знает как показ имён таблиц может сказаться на защищённости сайта от взлома
Ты можешь в sql запросе дать новые имена : Код (Text): SELECT `id` AS `number`, `id_job_sait` AS `job_number`, ...
Никак. Если всё в порядке с точки зрения SQL-инъекций. Так что лучше озаботься там, чем порть жизнь фронтенд программисту. И это, имена полей - это не имена таблиц
нашёл замечательную функцию array_combine в итоге и имена у массива есть и всё осталось в тайне но вопрос всё же актуальный
@AnteFil Нельзя через название полей взломать. Просто всё через подготовленные запросы делаешь, и не паришься. Если хочешь быть супер-пупер секьюрным, все данные в запрос подставляй через подготовленные запросы. Или возьми нормальный фреймворк, там это за тебя сделано.
Для тех кто делает неудобное и непонятное апи - в аду есть отдельный котел... Надо просто поля в таблицах бд сразу адекватно называть и потом смело отдавать,но не все - а нужные. Если нужно переименовать - переименуйте... Только не надо безличное апи, 2 параметр телефон, а 5 й емейл. Вероятность ошибок возрастет в разы. И не дай бог потом добавите ещё поле... Да ещё не в конец... Все - нервный срыв обеспечен
AnteFil, может вылезти другая проблема если id-шники будешь в паблик выбрасывать. Это то, что можно будет посмотреть, изменить удалить (смотря что реализуется посредством апи) информацию которая для этого не предназначена в данный момент или вообще. Нет, если подмена id не критична, то норм.
Если апи нормальное, то там всевозможные проверки, защита от дурака и прочие прелести... Так что свети айдишники смело
Ответ на Ваш вопрос с точки зрения разработки за последние 10 лет: допустимо, если это удобно для разработки и последующего чтения и понимания логики скрипта и кода разработчиками которые затем будут иметь с ним дело. Касаемо безопасности - не имеет значения есть имена таблиц в возвращаемых скриптами данных или их нет, если их не может получить никто кроме администраторов и людей имеющих доступ по FTP или к базе данных. Если же эти данные может получить кто то ещё - в этом случаи уже можно говорит что Ваш сайт взломан с всеми вытекающими.
Ответы апи в браузере может посмотреть любой пользователь, даже не имея доступа к ftp. Но всё равно, в этом ничего страшного, если правильно делаются запросы.
Не обязательно по API должен иметь возможность получать доступ любой пользователь. Но если это так, по идее может быть имеет смысл скрыть название поля id, если оно названо с именем таблица например если таблица user бывает что id называют user.id или user_id вот в этом случаи может быть есть смысла переименовтаь это поле. Хотя даже название такого поля в API вовсе не означает что столбцы в таблице называются именно так как в API. А касаемо других полей ну name и email это же вовсе не означает что в базе они называются так же, о этом ещё нужно догадаться.