Фильтрация свичей

Печать RSS
305

I

Чатланин
0
9. Приведи аргумент что надо, кроме то что себе безопасней и такое время? Более раскрытый ответ, а то банально, что так и не понятно по идее толком как лучше сделать. Хотя тоже считаю что надо.
A

Пришелец
0
В switch\case фильтровать не надо.
Ну только если потом не выводить результат.
Также не забывайте, что переменная может быть не определена, так что делать что-то так:
$act=isset($_GET['act'])? $_GET['act'] : false;
switch($act)
{
...
хватит в 99% случаев. Опять же, не забывайте, если потом делать echo $act; - надо фильтрировать, если вывода нет - фильтрация не нужна, если там есть другие значения кроме указанных в кейсах - сработает default, либо не сработает вообще)
Изменил: Akdmeh (16.08.2010 / 22:15)
D

Малиновые штаны
0
ДИкиЙ Ко_ОтЭ (16 Августа 2010 / 22:08)
2, приведи пример. У меня против всех только один аргумент изложеный в 3ем посте
да не, это я о GET, а вот если оператор свитч, то default все левое уйдет, но мож сервер глюкнет D
C
Автор
Малиновые штаны
0
давайте дойдем до абсурда. Напишем код свича не фильтрованый и будем пробывать хакнуть. У кого получится, тому плюс от меняD
K

Транклюкаторщик
0
причем здесь безопасность парни,вы чего гоните %|
"Принцип работы конструкции switch-case такой:
Вычисляется значение выражения;
Просматривается набор значений. Пусть значение1 равно значению выражения, вычисленного на первом шаге. Если не указана конструкция (оператор) break, то будут выполнены команды i, i+1, i+2, ... , N. В противном случае (есть break) будет выполнена только команда с номером i.
Если ни одно значение из набора не совпало со значением выражения, тогда выполняется блок default, если он указан."
о чем тут еще вести разговор?
Изменил: KOZZ (16.08.2010 / 22:17)

ВЕЛИКИЙ и УЖАСНЫЙ!
0
ну блин, я вот полагаюсь на экономию размера кода =) Ведь наверняка (ну или всякое бывает) ещё где-то этот самый гет пригодится, помимо свитча. А это уже может быть возможность для xss. Хуже от фильтрации в любом случае не будет.
Как вариант, если для свитча использовать только числовые значения GET, то подставить накрайняк этот долбаный int() и всё, раз уж так страшна фильтрация =) ИМХО.
A

Пришелец
0
"но мож сервер глюкнет" - такой же шанс, что сервер глюкнет равен тому, что не сработает mysql_escape_string или htmlspecialchars;)

Нет вывода - фильтрация не нужна.
Если нужно вывести значение через echo в default - отличная XSS.

Правда за все три года пока не пришлось выводить в default переменную условия, но тем не менее;)

ВЕЛИКИЙ и УЖАСНЫЙ!
0
17. Akdmeh, ну вот, я про то же самое говорю =)

Ктулху
0
Фильтровать не нужно, т.к. все предопределённые значения заданы в коде. если будет любое другое содержание то будет default, т.е. тоже предопределена, подделывать её бесполезно.
K

Транклюкаторщик
0
16, ну так речь идет только о самой конструкции, остальное естественно зависит от заточки рук ))
саму конструкцию вы НЕ ХАКНИТЕ!
также не забывайте что switch() работает на базе if-else-elseif
Стикеры / Теги / Правила / Топ тем / Топ постов / Поиск