Ваш CGI-скрипт получает поля формы в виде пар имя-значение без какой-либо информации о том, какой тип визуального элемента формы генерировал значения.
Ваш CGI-скрипт должен знать имена входных переменных, значения которых он будет проверять. Имена, передаваемые в сценарий на основе ненадежного пользовательского ввода, сопряжены с риском, IMHO - это включает использование другого поля, значением которого является имя группы радиосвязи.
Скажем, у вас есть переменная с именем contact_me
, которая может принимать значения "yes"
и "no"
. У вашего скрипта CGI нет абсолютно никаких оснований для беспокойства, если значение было предоставлено с помощью
<select name="contact_me">
<option value="yes" selected="1">Please do!</option>
<option value="no">Oh no!!!</option>
</select>
или используя
<input type="radio" name="contact_me" value="yes" checked="1">
<input type="radio" name="contact_me" value="no">
или если пользователь набрал ее ответ в текстовом поле
<input name="contact_me">
Единственное, о чем должен заботиться ваш CGI-скрипт, это если значение contact_me
равно "yes"
или "no"
.
Похоже, у вас нет четкого представления о CGI. См. FAQ по всемирной паутине безопасности: CGI (серверные) сценарии в качестве отправной точки.
Пожалуйста, остановите все вашего CGI-разработки, пока вы не поймете последствия. Я отказываюсь от этого замечания в свете ваших комментариев, разъясняющих использование файла конфигурации для определения имен параметров (что в принципе на порядки безопаснее).