СКОРПИОН

СКОРПИОН
Рейтинг
120
Регистрация
05.01.2006
visveta:

А эта шумиха нужна. Особенно, когда эта новость прошла по TV и радио. Это заставила многих рядовых пользователей задуматься о компьютерной безопасности.

И раскрыть бумажники, кошельки, портмоне и иже с ними...

По-моему, у пользователя с ником shmanci ...

Алексей Пешков:
Гениально! И каждый посетитель с поисковика будет класть товары в одну и ту же сессию. 😂

Неправда Ваша...

1. Практически везде требуется авторизация пользователя.

2. В .htacces проверяется USER_AGENT и скрипт пойдёт по другой ветке.

3. Для такого пользователя будет создана кука со своей сессией.

Miha Kuzmin (KMY):
301.

Да, для Яндекса - это проблема. Но есть большие подозрения, что он почти научился склеивать такие страницы с редиректируемыми...

Miha Kuzmin (KMY):
СКОРПИОН, это не способ. Проблема многостраничности устранится, появится проблема с ссылочной структурой, внешней и внутренней - одно другого стоит.

И какие же проблемы со ссылочной структурой должны возникнуть в случае, когда будет задан константный идентификатор сессии, который сделает все адреса постоянными? Нужно будет только немного времени для переиндексации сайта поисковым роботом, не более того. Здесь идентификатор сессии будет выглядеть как любой другой динамический параметр движка, например группа товара или раздел магазина и т.п.

Miha Kuzmin (KMY):
Нет, речь шла о том, можно ли с помощью мод_реврайта убрать сессии. Приведенный пример - это мягко говоря, не способ.

Михаил, не лукавьте. Если мы не имеем доступа к исходникам и не можем включить на сервере директиву session.use_trans_sid off,

то это один из способов обхода идентификатора сессии.

Miha Kuzmin (KMY):
Блестящий пример ! Я просто в восторге ! Когда робот будет пытаться взять страницу с сессией, отдавать ему 301 на страницу без сессии ! Ну это да, надо было придумать, бугагага 😂

А это уже кто как захочет. Можно таким же образом присвоить идентификатору сессии постоянное значение, например:

osCsid=sessionidforsearchenginespiders

и тогда у таких страниц будет постоянный адрес, что не вызовет их размножение и "обиды" поисковых машин... Да и почти каждая CMS это скушает...

Речь шла о том, что в mod_rewrite нельзя обработать QUERY_STRING. Как выяснилось - можно.

Воспользуйтесь технологией RSS, я думаю этого будут больше, чем достаточно.

Miha Kuzmin (KMY):
off: Молодой человек, что вы балабол, уже определили - ибо никакого подтверждения удаления сессий через мод_реврайт вы придумать не можете, да и вообще вряд ли знаете, для чего и как он используется. А надувать щеки и выдавать умные фразы - это у вас плохо получается, тот же казак хоть чуть-чуть в теме был.

Вы не в теме, молодой человек, и программировать пока не научились. Читайте:

/ru/forum/comment/1065879;postcount=40

Miha Kuzmin (KMY):
Мусью СКОРПИОН, как я понимаю, это вы про реврайт по глупости выдали, а теперь признаваться не хотите ? Я все еще продолжаю надеятся (и еще до вечера буду, пожалуй), что вы не балабол. Или все таки балабол ?

Михаил, если не умеете программировать - так и скажите, что Вы кодер, читающий мануалы и пытающийся что-то выродить. Зачем же флудить по все форуму. Если не ответил Вам вовремя - значит был занят. Но этот так - лирика. А теперь по теме.

Да, в мануале написано, что в mod_rewrite обрабатывается url до строки параметров, т.е. QUERY_STRING можно только отсечь или добавить, а манипулировать с его переменными нельзя. Да мало-ли что там написано? Голова на то и дана, чтобы думать.

Вот рабочий пример кода, который я (как сторонник open source) разрешаю использовать Вам там, где заблагорассудится. Будем исходить из того, что идентификатором сессии у нас является параметр osCsid (я думаю Вы слышали про CMS, которая добавляет его к урлам при отключенных куках). Итак, вот что надо сделать, чтобы используя модуль mod_rewrite вернуть запрашивающему агенту url без этого параметра:



RewriteCond %{QUERY_STRING} ^[^\?&]*osCsid=.{32}.*$

RewriteRule ^(.*)$ $1/%{QUERY_STRING}?
RewriteRule ^(.*)/osCsid=.{32}(.*)$ %{REQUEST_URI}?$2 [R=301,L]

Как я и говорил, всё довольно просто.

Кстати, условие добавлено для того, чтобы снизить нагрузку на сервер, всё работает и без него. Но скажите, ведь намного красивее выглядит, когда у нас обрабатываются не все url-ы подряд, а только те, которые содержат идентификатор сессии.

А теперь добавьте перед этим условием, например, вот такой код:


RewriteCond %{HTTP_USER_AGENT} ^Yandex.* [NC,OR]
RewriteCond %{HTTP_USER_AGENT} ^StackRambler.* [NC,OR]
RewriteCond %{HTTP_USER_AGENT} ^Aport.* [NC,OR]
RewriteCond %{HTTP_USER_AGENT} ^Google.* [NC,OR]
RewriteCond %{HTTP_USER_AGENT} ^Slurp.* [NC,OR]
RewriteCond %{HTTP_USER_AGENT} ^msnbot.* [NC]

и получите механизм для того, чтобы отправить роботов основных поисковых систем на адрес без идентификатора сессии.

З.Ы. Программист тем и отличается от кодера, что думает головой, проверяет многие вопросы на практике, а не тупо копирует чужие листинги, изменив названия переменных. Сам я, к сожалению, уже несколько лет не пишу программы постоянно, теперь этим занимается компания, которой я руковожу, но очень долгое время только этим зарабатывал себе на хлеб. И не только на хлеб. А вот Вас на работу я бы не принял...

Всего: 5087