Что такое XSS и как закрыть дыру?
1.
ion (22.02.2010 / 06:26)
В чате у админов узнали пароли! И сказали что воспользовались XSS! Как закрыть такие проникновения?
2.
Удаленный (22.02.2010 / 07:59)
XSS это уязвимость используется методом GЕT,для защиты от этой уязвимости нужен грамотный фильтр,запрет впускания в каталоги и подкаталоги,это слэши,я работал с этой функцией не давно,как дома буду скину тебе фильтр.
3.
ion (22.02.2010 / 08:12)
2 спасибо
4.
Удаленный (22.02.2010 / 10:22)
Фильтруй
<?php
function xss () {
$url = html_entity_decode(urldecode($_SERVER['QUERY_STRING']));
if ($url) {
if ((strpos($url, '<') !== false) or
(strpos($url, '>') !== false) or
(strpos($url, '(') !== false) or
(strpos($url, ')') !== false) or
(strpos($url, '"') !== false) or
(strpos($url, ':') !== false) or
(strpos($url, '/') !== false) or
(strpos($url, './') !== false) or
(strpos($url, '../') !== false) or
(strpos($url, '\'') !== false)
) {
exit("Попытка взлома");
}
}
}
?>
5.
Артур (22.02.2010 / 10:34)
4, бред какой-то
6.
Удаленный (22.02.2010 / 10:38)
5.
Fuelen, Напиши не бред.
7.
Дима (22.02.2010 / 12:01)
Fuelen (Сегодня / 10:34)
4, бред какой-то
чем писать замечания бред или нет написал бы тогдла как правильно
8.
Удаленный (22.02.2010 / 13:02)
Фильтр от XSS и SQL иньекций
function antihack() {
$uri = $_SERVER['REQUEST_URI'];
$arr_u = explode("?", $uri );
$url = $arr_u[0];
$p_url = $arr_u[1];
$inj='/script|http|<|>|<|>|SELECT|UNION|UPDATE|AND|exe|exec|INSERT|tmp/i';
if (preg_match($inj, $p_url )) { ie("Гуляй Вася!"); }}
antihack ();
9.
ктулху (22.02.2010 / 16:28)
8, это от SQL иньекций
Богдан по идее правильно написал, но XSS могут и методом POST заюзать и не только в URL
10.
ion (22.02.2010 / 17:22)
так подскажите какой будет действенный метод!!!!
11.
Neformat (22.02.2010 / 17:26)
Действенный метод - это фильтровать все входящие гет, пост, куки данные там где это нужно и соответствующими функциями.
А фильтровать весь гет или пост массив, как я часто встречаю, да еще универсальными функциями с регулярками - очень скажется на производительности.
12.
Б.В. (22.02.2010 / 17:53)
При вы8воде данных в браузере: htmlspecialchars фильтруем, при запросах в мускул mysql_escape_string фильтруем (цыфры для запросов я проверяю через ctype_digit, чтоб быть вполне уверенным)
13.
ion (22.02.2010 / 18:11)
Neformat (Сегодня / 17:26)
Действенный метод - это фильтровать все входящие гет, пост, куки данные там где это нужно и соответствующими функциями.
А фильтровать весь гет или пост массив, как я часто встречаю, да еще универсальными функциями с регулярками - очень скажется на производительности.
Так вроде эти переменные фильтруются а гады все равно узнают пароли
14.
ктулху (22.02.2010 / 18:18)
14, кто же их в открытом виде то хранит? и мне кажется что там явно не XSS, или у тебя пароли прямо в URL идут
15.
Neformat (22.02.2010 / 18:32)
#14. если бы они все фильтровались, тебя бы не взломали
16.
Titov (22.02.2010 / 18:38)
ну да гетом ловят видимо, пусть не переходят по прямых линках, или сесиионную авторизацию делай, куки, да масса вариантов для защиты, было бы желание
17.
Удаленный (23.02.2010 / 04:47)
10,писал 2 кода,просто последний форум не задублировал,дома напишу от XSS.
А по теме использовать для фильтра strip_tags(); вырежим строчные теги php|html
htmlspecialchars() - работает по спец символам,вот ещё функция htmlentities() конвертирует все символы в строке (кроме букв),ну и stripslashes() удалим экранированные символы.
18.
Nu3oN (24.02.2010 / 01:49)
я у себя запретил в url все кроме : / . ? & и в полне спокоен! и фильтрую каждую переменную полученную через гет и пост, все что можно заменить, заменяю! и вполне уверенно чувствую себя
19.
Славик (24.02.2010 / 01:56)
Заяц скинь код
20.
ramzes (24.02.2010 / 03:21)
Вообще ни чего не запрещаю ни когда в адресе..
Все переменные на месте фильтрую.
Эти универсальные методы лажа и лишняя нагрузка.
Site.ru/?page=fuck
и фильтр обосрался, и ресурсы сожрал и проку 0.
$_MYGET['page'] = abs(intval($_GET['page']));
$_MYGET['id'] = abs(intval($_GET['id']));
$_MYGET['login'] = (preg_match('|^[a-z0-9]{3,20}$|i',$_GET['login']) ? $_GET['login'] : false;
проще свой массив создать и из него брать нужные переменные уже правильно отфильтованными.
Если уж так хочется чего ни будь в шапку запихнуть..
21.
Олег (24.02.2010 / 20:44)
Откуда вы взяли что XSS передаетсячерез GET? Не верьте! XSS передается любым способом - подменой кук, пост, гет, запросом.
http://ru.wikipedia.org/wiki/XSS
22.
Удаленный (25.02.2010 / 08:54)
22. ты так сказал как будто открыл глаза всем,имелось ввиду про основную передачу.
23.
Валерий (25.02.2010 / 14:25)
Основная скорее POST чем GET
24.
Nu3oN (25.02.2010 / 15:22)
Aligan (24.02.10 / 20:44)
Откуда вы взяли что XSS передаетсячерез GET? Не верьте! XSS передается любым способом - подменой кук, пост, гет, запросом.
http://ru.wikipedia.org/wiki/XSS
молодец! возьми печеньку с полочки! если бы ты не сказал, на этом форуме ни кто бы не додумался до этого! и ты даже половину не перечислил!
25.
ктулху (25.02.2010 / 15:43)
25, ну что ты так бурно реагируешь? Ну сказал человек и сказал, молодец он, пояснил важный момент. Что уж прям трагедию из этого делать.
26.
Удаленный (25.02.2010 / 15:44)
26. ну тыкать в вику,это уже что то с чем то)
27.
ramzes (25.02.2010 / 15:45)
Гг интересно где написанно какой из массивов основной?
Все зависит от конкретного скрипта.
Че основного в $_POST если скрипт например библиотека или архив файлов?
28.
Олег (25.02.2010 / 17:14)
ЗАЯЦ, иди коси траву ***!
TRUE, твои ли это слова были >>XSS это уязвимость используется методом GЕT
Я впервую очередь для таких как ты написал ссылку на википедию, чтобы не вводили других людей в заблуждение.
29.
Удаленный (25.02.2010 / 17:32)
27.
True, Согласен.
29.
Aligan, с GET запросами удобнее работать.
30.
Nu3oN (25.02.2010 / 17:40)
ShiftBHT (Сегодня / 15:43)
25, ну что ты так бурно реагируешь? Ну сказал человек и сказал, молодец он, пояснил важный момент. Что уж прям трагедию из этого делать.
Я бурно реагирую? я просто сделал замечание
так сказать поправку
31.
ramzes (25.02.2010 / 17:49)
Раздули из мухи слона.
Человек по теме сказал, а знаете вы это или нет, роли не играет. На форуме много тех кто даже не знают что такое хсс, им и линк лишним не будет.
#31 бурно.
32.
Nu3oN (25.02.2010 / 17:53)
ramzes (Сегодня / 17:49)
#31 бурно.
ну бурно, так бурно! со стороны виднее...
33.
Олег (25.02.2010 / 20:03)
BAGIR, при чем тут удобство. Наоборот, get-запросами удобно манипулировать, когда делаешь sql-инъекцию, а вот xss, это когда, например, в форму пишешь вредоносный яваскрипт. Например можно написать js, который будет под сообщениями пользователя будет скрывать скрытый див со свойством display : none, и в этом диве будут отображаться содержимое кук пользователя - пароль или его хеш, логин. XSS, это в первую очередь кража информации со стороны клиента, а не сервера.
34.
ZipeR (27.02.2010 / 15:35)
а я умею пользоваться XSS я хакал так одного дятла в чате,давным давно ещё
35.
ramzes (27.02.2010 / 16:03)
Возьми с полки пирожок.
Похвалился что ли?))
36.
ZipeR (27.02.2010 / 16:22)
36,да нет просто сказал
37.
Удаленный (27.02.2010 / 19:26)
тема вроде не - кто умеет пользоваться xss ??
38.
ктулху (28.02.2010 / 10:00)
38, а по теме и не ответить ничего толком, телепатов то тут нет
39.
Azzido (28.02.2010 / 20:00)
Мне кажется там тупо сниффер применен, если id сессии или пароль в url хранится, а про хss просто для звучности сказано
40.
Azzido (28.02.2010 / 20:05)
Мне кажется там тупо сниффер применен, если id сессии или пароль в url хранится, а про хss просто для звучности сказано
41.
Fest (01.03.2010 / 08:39)
41. Это снифер и всё просто украли кукис.
42.
Александр (02.03.2010 / 18:47)
41. согласен. фильтруй все переменные, сообщение и т.п, часто встречаю в чатах не фильтрованые переменные в "О себе", либо если пароль и логин хранятся в гет запросе, при переходе из информации о пользователе по сайту(сайт пользователя), передаются данные в referer. смотри может пользователь постит смайлами из снифера...
43.
Zarj (14.06.2012 / 07:25)
помогите вот это исправить пожалуйста echo "<a href='?".url("d=$l&page=($_SESSION[page])")."'>вернуться</a><br />\n";
44.
XoPyC (14.06.2012 / 11:24)
Zarj (14 Июня 2012 / 07:25)
помогите вот это исправить пожалуйста echo "<a href='?".url("d=$l&page=($_SESSION[page])")."'>вернуться</a><br />\n";
echo "<a href='?".url("d=$l&page=".htmlspecialchars($_SESSION["page"])."")."'>вернуться</a><br />\n";
45.
Zarj (14.06.2012 / 18:11)
Народ двойные ковычки " или одна ' . Как правильно
46.
Zarj (15.06.2012 / 00:36)
mysql_query("INSERT INTO `loads_komm` (`id_user`, `time`, `msg`, `file`, `size`) values('$user[id]', '$time', '".my_esc('$msg')."', '$jfile', '$size')");
SQL Injection- как ее тут закрыть
47.
Андрюха (16.06.2012 / 14:56)
и функцию my_esc();
48.
jama (24.09.2013 / 04:27)
как найти диркы с сайта
49.
Дмитрий (24.09.2013 / 05:47)
51.
jama, Однозначно, только нанять специалиста. На любом фриланс-сайте.
50.
Андрей (09.11.2013 / 14:21)
"диркы" ?
Выкинуть пабличные скрипты и написать свои.
URL:
https://visavi.net/topics/6299