#php #mysql #security #firebug #server-side
#php #mysql #Безопасность #firebug #на стороне сервера
Вопрос:
В моей форме есть выпадающий список для названий состояний. Когда пользователь отправляет форму, он отправляет ее моему php-скрипту, который, в свою очередь, добавляет ее в мою базу данных mysql.
Если пользователь изменяет значение состояния с помощью firebug и отправляет его, это не работает, потому что моя база данных не поддерживает внешние ключи.
Одним из решений является сравнение полученного состояния с таблицей состояний. (Это не только поле, есть страна, город, год рождения, работа и т.д. …)
все ли знают другое решение?
Комментарии:
1. привет, Алексий. вы полностью меняете мой вопрос. (Как это можно исправить?)???
2. Я не верю, что полностью изменил ваш вопрос (т. е. он по-прежнему имеет тот же смысл). Я опубликовал ответ.
3. спасибо за редактирование и ответ
Ответ №1:
Одним из решений является сравнение полученного состояния с таблицей состояний.
Комментарии:
1. что, если я скопирую разрешенные значения состояния в массив и проверю с помощью in_arary()? у меня есть какие-либо поля типа state, поэтому проверка занимает много времени?
2. @a.v вы все это сказали. не массив, а таблица. сравните его с таблицей состояний.
Ответ №2:
Я бы сделал это:
Когда пользователь отправляет значение (название состояния), оно имеет внутренний индекс (значение идентификатора для html-элемента). Затем проверьте свою базу данных, чтобы найти имя состояния, которое соответствует номеру индекса.
что, если я скопирую разрешенные значения состояния в массив и проверю с помощью in_arary()?
Вы тоже могли бы это сделать. Убедитесь, что вы делаете это с помощью php-скрипта, а не javascript.
Ответ №3:
Либо:
А) проверьте свои входные данные перед добавлением их в базу данных Б) используйте перечисление
Комментарии:
1. что, если я скопирую разрешенные значения состояния в массив и проверю с помощью in_arary()?
2. Это зависит от того, как часто будут меняться данные вашего состояния (и другие). Если это достаточно исправлено, я бы просто сохранил возможные значения в коде и проверил их соответствие, чтобы избежать ненужных обращений к базе данных. Если возможные значения, вероятно, изменятся, то обязательно сохраните их в базе данных.
Ответ №4:
Не вставляйте данные напрямую в базу данных…Перед запуском запроса insert,,, сначала проверьте, существуют ли эти значения в главной таблице или нет… Если значение in существует в главной таблице, то запускайте запрос insert только в вашу таблицу желаний..
Комментарии:
1. что, если я скопирую разрешенные значения состояния в массив и проверю с помощью in_arary()?