YuriBtr 58 Опубликовано: 27 августа 2013 Рассказать Опубликовано: 27 августа 2013 (изменено) Здравствуйте, у меня проблема, если в урле используются двойные кавычки DLE выдает Hacking attempt! Такие урлы иногда генерит Facebook плагин когда лайкаешь страницу. Это происходит на страницах, где в заголовках стоят кавычки разных типов. Отказаться от кавычек невозможно. Я ищу возможность чтобы отключить у Facebook плагина JSON параметры, которые добавляют такие вот параметры в строку адреса. &action_object_map={"509591315784032"%3A429904943788839} &action_type_map={"509591315784032"%3A"og.recommends"} &action_ref_map=[] Пока я ищу как это сделать, можно как временное решение через htaccess заставить DLE отбрасывать символы " из адресной строки? Вот такие варианты пока не помогли: RewriteRule ^(.*)"$ $1 [R=301,L] и это тоже RewriteRule ^([^.]+)/([0-9]+)-(.*).html(.*)["](.*)$ /$1/$2-$3.html [R=301,L] Заранее благодарен за быструю помощь. Изменено 27 августа 2013 пользователем YuriBtr Цитата Ссылка на сообщение Поделиться на других сайтах
celsoft 6 076 Опубликовано: 27 августа 2013 Рассказать Опубликовано: 27 августа 2013 Ложное Hacking attempt! у меня проблема, если в урле используются двойные кавычки DLE выдает Hacking attempt! Ничего ложного в данном случае нет. Это недопустимые для URL символы. Вам нужно убирать в данном случае фильтрацию данных символов в файле/engine/modules/functions.php в функции check_xss Цитата Ссылка на сообщение Поделиться на других сайтах
YuriBtr 58 Опубликовано: 27 августа 2013 Рассказать Опубликовано: 27 августа 2013 (изменено) Автор Спасибо за ответ. Но мне не нужно эти кавычки передавать на обработку в DLE. Их нужно отсекать еще на уровне htaccess. Подскажите пожалуйста правило которое это сделает. Можно убирать все, что справа в строке адреса, начиная с первой кавычки. Заранее благодарен за оперативность. Ничего ложного в данном случае нет. Это недопустимые для URL символы. Позвольте не согласиться с вами. Есть много сайтов - достаточно популярных - у которых появление двойной кавычки в адресе НЕ вызывает никаких пугающих пользователей сообщений. Они просто игнорируют этот символ. К тому же о каком хакинге может идти речь, если добавить именно эти параметры &action_object_map={"509591315784032"%3A429904943788839}???? Так как мы стремимся сделать работу движка DLE более удобной для пользователей, можно было бы сделать более дружественное читателям решение этой проблемы. Хотя бы на уровне htaccess. Ведь в свое время от дружественных 404 ошибок тоже отказывались, а теперь - норма. Спасибо! Изменено 27 августа 2013 пользователем YuriBtr Цитата Ссылка на сообщение Поделиться на других сайтах
celsoft 6 076 Опубликовано: 27 августа 2013 Рассказать Опубликовано: 27 августа 2013 Но мне не нужно эти кавычки передавать на обработку в DLE. Правильно не нужно, а вы их передаете в DLE, соответственно срабатывает скрипт DLE. Через .htaccess вы эту передачу не удалите, если вы хотите чтобы они не передавались они должны отсутвовать в URL, т.е. их не должен слать Facebook. Позвольте не согласиться с вами. Есть много сайтов - достаточно популярных - у которых появление двойной кавычки в адресе НЕ вызывает никаких пугающих пользователей сообщений. Они просто игнорируют этот символ. К тому же о каком хакинге может идти речь, если добавить именно эти параметры &action_object_map={"509591315784032"%3A429904943788839}???? Причем здесь ваш код {"509591315784032"%3A429904943788839}? Существует такое понятие как фильтрация входящих данных и недопустимые символы в URL, недопустимыми являются символы которые скриптом не используются, но могут быть использованы для XSS или SQL атак на сайты. Эта фильтрация относится к мерам превентивной безопасности (т.е. к заблаговременной), а не к тому когда проблемы находится, только тогда они исправляются. Цитата Ссылка на сообщение Поделиться на других сайтах
YuriBtr 58 Опубликовано: 27 августа 2013 Рассказать Опубликовано: 27 августа 2013 Автор Эта фильтрация относится к мерам превентивной безопасности (т.е. к заблаговременной), а не к тому когда проблемы находится, только тогда они исправляются. Ок, но почему бы тогда движок сайта не заставить просто проигнорировать эти символы - т.е. не обрабатывать их вообще? Мне не нужно пугающее сообщение о попытке взлома, тем более когда совершаются абсолютно легальные действия. Еще раз говорю - если мы делаем дружественный движок то он не должен в таких случаях пугать нормальных пользователей. Что можно можно исправить в движке без ущерба защищенности? Через .htaccess вы эту передачу не удалите Я правильно понял, что RewriteRule не способно убрать двойные кавычки? Оччччень жаль.... Тогда пока остается надежда на первый вариант - с правкой движка. Цитата Ссылка на сообщение Поделиться на других сайтах
celsoft 6 076 Опубликовано: 27 августа 2013 Рассказать Опубликовано: 27 августа 2013 Ок, но почему бы тогда движок сайта не заставить просто проигнорировать эти символы - т.е. не обрабатывать их вообще? Вы не поняли. Это не обработка символов, а превентивные меры безопасности. Можете убрать эти меры безопасности, я написал вам где их убрать. Там вы убираете фильтры превентивной безопасности, а не обработку этих символов. Мне не нужно пугающее сообщение о попытке взлома, тем более когда совершаются абсолютно легальные действия. С каких пор отправка скрипту "левых" данных action_object_map={"509591315784032"%3A429904943788839} стала легальной? Легальным считается только действие которое предусмотрено скриптом и обрабатывается скриптом. А данное действие абсолютно нелегально для DLE, и срабатывают превентивные меры безопасности, которые данные нелегальные действия блокируются. Цитата Ссылка на сообщение Поделиться на других сайтах
YuriBtr 58 Опубликовано: 27 августа 2013 Рассказать Опубликовано: 27 августа 2013 Автор Извините, может я чего не допонимаю, но почему нельзя эти кавычки просто вырезать еще на входе в скрипт - при срабатывании фильтра превентивной безопасности, без генерации ошибки? Можете убрать эти меры безопасности, я написал вам где их убрать А это действие сделает сайт более уязвимым? Цитата Ссылка на сообщение Поделиться на других сайтах
celsoft 6 076 Опубликовано: 27 августа 2013 Рассказать Опубликовано: 27 августа 2013 Извините, может я чего не допонимаю, но почему нельзя эти кавычки просто вырезать еще на входе в скрипт - при срабатывании фильтра превентивной безопасности, без генерации ошибки? Потому что сама кавычка нужна в некоторых случаях скрипту, и он ее может использовать. Вырезать ее просто так нельзя. Блокировка происходит только ее при несанкционированных случаях и несанкционированных переменных. А это действие сделает сайт более уязвимым? Какой то конкретной и известной проблемы нет. Это превентивный фильтр, т.е. на то что неизвестно и может быть теоретически. Например вы поставите какой нибудь сторонний модуль, который некорректно фильтрует данные и появление кавычки может привести например к XSS и SQL атаке. В этом случае сайт и защищает превентивный фильтр. Цитата Ссылка на сообщение Поделиться на других сайтах
YuriBtr 58 Опубликовано: 27 августа 2013 Рассказать Опубликовано: 27 августа 2013 (изменено) Автор Блокировка происходит только ее при несанкционированных случаях и несанкционированных переменных. Хорошо, как можно добавить в санкционированные переменные action_object_map и action_type_map ? Ведь я не зря назвал тему "Ложное Hacking attempt!". Мы точно знаем, что Фейсбук не генерирует никаких противоправных действий. Эти двойные кавычки появляются в результате неверной обработки кавычек в заголовке новости. Но это не должно доставлять проблем пользователям. Может быть добавить в исключение в движок переменные action_object_map и action_type_map? Пусть скрипт их просто не использует и игнорирует. Изменено 27 августа 2013 пользователем YuriBtr Цитата Ссылка на сообщение Поделиться на других сайтах
celsoft 6 076 Опубликовано: 28 августа 2013 Рассказать Опубликовано: 28 августа 2013 Хорошо, как можно добавить в санкционированные переменные action_object_map и action_type_map ? В этой же функции написать соответствующий код, который будет возвращать false из функции если эти символы именно в этих переменных. Я не пишу модификаций скрипта на заказ, поэтому какого либо готового решения предоставить вам не могу. Ведь я не зря назвал тему "Ложное Hacking attempt!". Мы точно знаем, что Фейсбук не генерирует никаких противоправных действий. Эти двойные кавычки появляются в результате неверной обработки кавычек в заголовке новости. Но это не должно доставлять проблем пользователям. Если честно то непонятно в чем оно ложное и на каком основании Фейсбук посылает в URL вашего сайта, именно вашего а не своего, данные параметры? Это есть ни что иное чем противоправные со стороны фейсбука действия, потому как эти данные он посылает вашему серверу, а ваш сервер их не запрашивал. Цитата Ссылка на сообщение Поделиться на других сайтах
Lomot 134 Опубликовано: 28 августа 2013 Рассказать Опубликовано: 28 августа 2013 может пора уже ссылку на страницу где нужно нажать "лайкнуть" или просто описание(со скриншотами?) как это воспроизвести. Цитата Ссылка на сообщение Поделиться на других сайтах
YuriBtr 58 Опубликовано: 3 сентября 2013 Рассказать Опубликовано: 3 сентября 2013 Автор Через .htaccess вы эту передачу не удалите, если вы хотите чтобы они не передавались они должны отсутвовать в URL, т.е. их не должен слать Facebook. Уважаемая техподдержка. Все решалось достаточно просто, вопреки вашему мнению. Добавлением вот этой строки в htaccess RewriteCond %{QUERY_STRING} ^fb_action_ids= [NC] RewriteRule (.*) $1? [R=301,L] Где fb_action_ids первая переменная от фейсбука, которая вставляется сразу после вопросительного знака в адресе. Цитата Ссылка на сообщение Поделиться на других сайтах
Рекомендованные сообщения
Присоединяйтесь к обсуждению
Вы можете опубликовать сообщение сейчас, а зарегистрироваться позже. Если у вас есть аккаунт, войдите в него для написания от своего имени.