Вы не зашли.

#101 

Dimitry
Ниндзя по зачистке капусты
Имя: Дмитрий
Откуда: Германия
Зарегистрирован: 2003-04-18
Сообщений: 18803
На форуме: 1817 час.
Репутация: 1243 (99%) ±
Инфо  Вебсайт  Написать

$k1=5;
$k2=4;
$r=rand($k1*-1,$k2);
if($r>0) echo "win2"; else echo "win1";

Что-то типо такого, но чтобы работать юолее точно с дробными придумай например % выигрыша, а не оценку, т.е. оуенка 5 это например 99% выигрыш)
Похоже на ставки футбольные чем то)


Моя анкета на vmeste.eu
Если сообщение Вам помогло, отблагодарите участника повысив его репутацию!
PS. То, что нас не убивает, то делает нас сильнее!

Неактивен

#102 

TheDark
Знаток
Зарегистрирован: 2010-08-01
Сообщений: 1545
На форуме: 526 час.
Репутация: 110 (88%) ±
Инфо  Написать

Вопрос такой. PHP не может удалить cookies, если они добавлены пользователем.
Например, я, тестируя один из проектов на уязвимость в подмене cookies, пользуюсь расширением для браузера "EditThisCookie", в котором можно самостоятельно создать куку с нужными значениями для сайта
Я даю ей такое же имя, как и скрипт (например, user_id), но функция setcookie('user_id', ''); уже не может удалить ее (например, когда пользователь разлогинивается) и начинаются коллапсы (с куками, установленными скриптом такого нет).

Как быть? Как 100% удалить куку с нужным именем, даже если она создана подобным методом и с отличающимися параметрами (path, domain и т.д.)?

Отредактированно TheDark (2016-12-01 22:26:45)

Неактивен

#103 

Dimitry
Ниндзя по зачистке капусты
Имя: Дмитрий
Откуда: Германия
Зарегистрирован: 2003-04-18
Сообщений: 18803
На форуме: 1817 час.
Репутация: 1243 (99%) ±
Инфо  Вебсайт  Написать

Как добавил так и удали, к пользователям это никак не относится)
Можно вообще отключить куки в браузере, и как их тогда добавить через PHP ???


Моя анкета на vmeste.eu
Если сообщение Вам помогло, отблагодарите участника повысив его репутацию!
PS. То, что нас не убивает, то делает нас сильнее!

Неактивен

#104 

TheDark
Знаток
Зарегистрирован: 2010-08-01
Сообщений: 1545
На форуме: 526 час.
Репутация: 110 (88%) ±
Инфо  Написать

Dimitry, просто в этом серьезная проблема в безопасности. Кто-то может зайти на сайт, создать подобным образом левые куки и скрипт, обнаружив несоответствия, не сможет их удалить. Это плохо. Пытаюсь понять, как это исправить.

Неактивен

#105 

Dimitry
Ниндзя по зачистке капусты
Имя: Дмитрий
Откуда: Германия
Зарегистрирован: 2003-04-18
Сообщений: 18803
На форуме: 1817 час.
Репутация: 1243 (99%) ±
Инфо  Вебсайт  Написать

В этом не может быть проблема в безопасности, ну просто вообще никак, так как в куках ненужно ничего делать что связано с безопасностью или опасностью))
Попробуй переубеди, а лучше сразу пример, где там у тебя возникает опасность)


Моя анкета на vmeste.eu
Если сообщение Вам помогло, отблагодарите участника повысив его репутацию!
PS. То, что нас не убивает, то делает нас сильнее!

Неактивен

#106 

TheDark
Знаток
Зарегистрирован: 2010-08-01
Сообщений: 1545
На форуме: 526 час.
Репутация: 110 (88%) ±
Инфо  Написать

Dimitry, хорошо, приведу пример. Не совсем дело в безопасности, но коллапс заметный. Может подскажешь, как сделать иначе.

При заходе на сайт, специальная функция проверяет авторизован ли пользователь. Если в браузере установлены нужные куки, она их неким образом проверяет и пускает на сайт. Если пользователь вышел (/?action=logout), то запускается функция logout(), которая стирает куки и в конце редиректит на главную. Если все процессы естественные, то все ок.

Если же кто-то решит поэксперементировать и создать куки вручную с нужными названиями, но левыми значениями, то проверку они не пройдут и скрипт запустит ту же функцию logout(), которая теперь уже не может удалить эти куки. Они остаются, проверка запускается и начинается бесконечный редирект на главную. Сайт глохнет.

Вот что делать? Процесс ведь самый обычный.

Отредактированно TheDark (2016-12-02 15:42:07)

Неактивен

#107 

Dimitry
Ниндзя по зачистке капусты
Имя: Дмитрий
Откуда: Германия
Зарегистрирован: 2003-04-18
Сообщений: 18803
На форуме: 1817 час.
Репутация: 1243 (99%) ±
Инфо  Вебсайт  Написать

И перезаписать ты эту куку тоже не можешь?, выстави новую куку logout=1, при авторизации дополнительно ставь на 0.
Также можно в сессии юзера выставлять этот флаг, и пофиг потом на то какие куки у него, стоит там logout=1 значит всё.
Процесс может и обычный, но править куки в ручную это хакерство, так пусть редиректит этого хакера до посинения и потом заблочит фаервол.
Справедливо)

Ещё после разлогина редиректят на страницу с ?logout=1 и проверяя наличие этого GET можно больше не редиректить.
В целом все авторедиректы это то ещё зло...
Как видишь решений много, но я бы ничего их этого не делал просто исходя из того что править куки в ручную не надо)


Моя анкета на vmeste.eu
Если сообщение Вам помогло, отблагодарите участника повысив его репутацию!
PS. То, что нас не убивает, то делает нас сильнее!

Неактивен

#108 

TheDark
Знаток
Зарегистрирован: 2010-08-01
Сообщений: 1545
На форуме: 526 час.
Репутация: 110 (88%) ±
Инфо  Написать

Я нашел решение.
У меня cookies устанавливается с дополнительными параметрами path и domain. И удалял я их с этими параметрами. А вот при установке вручную эти параметры не устанавливались. И не попадали под "шаблон" удаления.

Поэтому каждая кука теперь удаляется дважды:

Теперь если вручную создать куки с параметрами или без они все равно удалятся. И все стало ок.

И спасибо за советы.

Отредактированно TheDark (2016-12-02 21:13:26)

Неактивен

#109 

TheDark
Знаток
Зарегистрирован: 2010-08-01
Сообщений: 1545
На форуме: 526 час.
Репутация: 110 (88%) ±
Инфо  Написать

Задача такая. Мне нужно хранить в БД некие индивидуальные для каждого пользователя данные в зашифрованном виде, которые потом, имея ключ можно расшифровать. Я уже написал класс для работы с mcrypt, все ок (шифр открывается тем же ключем, что и шифруется).

Но вопрос о практике. Что для каждого конкретного пользователя может выступать ключем, а главное - где его хранить? Мне кажется глупо хранить ключ в БД, ведь какой тогда смысл?! С другой стороны, вводить пользователю каждый раз ключ, чтобы получить доступ - еще более глупо.

Как делают обычно? Мб какой-то .dat файл или что-то в этом роде? В сети очень немного информации о практической стороне вопроса. Дим, может ты сталкивался с таким?

Отредактированно TheDark (2016-12-18 00:17:48)

Неактивен

#110 

Dimitry
Ниндзя по зачистке капусты
Имя: Дмитрий
Откуда: Германия
Зарегистрирован: 2003-04-18
Сообщений: 18803
На форуме: 1817 час.
Репутация: 1243 (99%) ±
Инфо  Вебсайт  Написать

Главное понять зачем это надо, и потом от этого плясать.


Моя анкета на vmeste.eu
Если сообщение Вам помогло, отблагодарите участника повысив его репутацию!
PS. То, что нас не убивает, то делает нас сильнее!

Неактивен

#111 

TheDark
Знаток
Зарегистрирован: 2010-08-01
Сообщений: 1545
На форуме: 526 час.
Репутация: 110 (88%) ±
Инфо  Написать

Dimitry, хороший ответ, очень высокотехнологичное решение) Я знаю, что мне это нужно, куда плясать?

Неактивен

#112 

Dimitry
Ниндзя по зачистке капусты
Имя: Дмитрий
Откуда: Германия
Зарегистрирован: 2003-04-18
Сообщений: 18803
На форуме: 1817 час.
Репутация: 1243 (99%) ±
Инфо  Вебсайт  Написать

Ну я лично только пароли шифровал и базы данных на мпчате, без каких либо файлов, механизм разшифровки пхп фунцией.
А так как не понятно что ты делаешь, сложно что-то подсказывать, задача поверхностная.


Моя анкета на vmeste.eu
Если сообщение Вам помогло, отблагодарите участника повысив его репутацию!
PS. То, что нас не убивает, то делает нас сильнее!

Неактивен

#113 

TheDark
Знаток
Зарегистрирован: 2010-08-01
Сообщений: 1545
На форуме: 526 час.
Репутация: 110 (88%) ±
Инфо  Написать

Вопрос по mod rewrite. Создал правило типа

теперь один и тот же документ доступен по двум адресам: /alias и /file.php

Можно как-то сделать 404 при обращении к /file.php ну или хотя бы редирект на /alias?

Неактивен

#114 

mychatik
Moderator
Имя: Геннадий
Зарегистрирован: 2016-04-24
Сообщений: 254
На форуме: 64 час.
Репутация: 19 (95%) ±
Инфо  Вебсайт  Написать

Сообщение от TheDark:

Создал правило типа

теперь один и тот же документ доступен по двум адресам: /alias и /file.php

Ну это типа переименования файла. Применяется для "укорачивания" длинных названий файлов в ссылках.
Но в плане СЕО - делать так нежелательно. Поисковикам не нравится дублированный контент.
Из-за "дублей" из поиска могут выпасть нужные страницы.

Сообщение от TheDark:

Можно как-то сделать 404 при обращении к /file.php ну или хотя бы редирект на /alias?

404 также делать нежелательно для поисковиков.
А редирект - без вопросов:

В .htaccess достаточно строки вида:

если нужно редиректить все содержимое подкаталога:

редирект для всего сайта:

Отредактированно mychatik (2017-01-04 18:09:06)

Неактивен

#115 

TheDark
Знаток
Зарегистрирован: 2010-08-01
Сообщений: 1545
На форуме: 526 час.
Репутация: 110 (88%) ±
Инфо  Написать

mychatik, какой-то бред несете. Старайтесь не участвовать в темах, в которых не смыслите.

Неактивен

#116 

mychatik
Moderator
Имя: Геннадий
Зарегистрирован: 2016-04-24
Сообщений: 254
На форуме: 64 час.
Репутация: 19 (95%) ±
Инфо  Вебсайт  Написать

Сообщение от TheDark:

mychatik, какой-то бред несете. Старайтесь не участвовать в темах, в которых не смыслите.

Я дал конкретный ответ на конкретно поставленный вопрос.
Если он Вас чем-то конкретно не устраивает, скажите.

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

И мне вот интересно, в чём именно заключается "бред"?

В том, что дубли страниц засоряют сайт и поисковики выбрасывают их из поиска?
Что, к примеру, бот обойдёт 400 страниц - а в выдачу попадёт всего 300 из-за дублированного контента.
И, если бы не дубли, бот прошёл бы по всем 400 уникальным и все их дал бы в выдачу.
Так это не бред, а одно из правил СЕО.

Может бред в том, что ошибка 404, как минимум, может безвозвратно вывести посетителя с сайта?
А, если страница сообщает об ошибке и при этом выдает код 200 OK (что происходит из-за неправильной настройки сервера), то она будет проиндексирована и попадёт в поиск, вместо нужных страниц.
А, если таких ошибок на сайте накопится много (будут перемещены, удалены или переименованы файлы и т.д.), то опять таки повлияет на количество "мусора" - дублей страниц на сайте.

Конечно, если на сайте всего 10 страниц и одна из них - дубль, то тогда это всё вышесказанное - действительно бред.
Это бред и для тех, кому плевать на рейтинги поисковиков для своего сайта.
Но тему могут прочитать другие, которые решат таким образом переименовать все 1000 страниц своего сайта.

Или "бред" в правилах редиректа, через .htaccess?

Если не годится редирект - тогда только так:

И получите свою желаемую ошибку 404 (вернее - 403) smile
Но, конечно, так делать нельзя. Иначе файл будет недоступен.
Ведь файл http://yoursite.com/file.php никуда не делся из директории. А правилом Вы прописали обращение к нему ещё и по адресу http://yoursite.com/alias.
Поэтому, заблокировать /file.php нельзя, так как он продолжает использоваться.
Возможен только вариант редиректа на /alias, при обращении к /file.php.

Может я и ошибаюсь в чём-то, и есть более элегантные решения проблемы.
Но за 10 дней ещё никто другого решения не предложил.

И вот не поленился - погуглил, что пишут учебники о том, что Вы сделали у себя (может кому будет интересно):

Создание красивых URL.

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

С помощью файла .htaccess и apache модуля, который называется mod_rewrite, вы сможете переделать свои ссылки на более красивые и короткие.

Вот некоторые примеры с кодом:

Отредактированно mychatik (2017-01-06 04:32:23)

Неактивен

#117 

TheDark
Знаток
Зарегистрирован: 2010-08-01
Сообщений: 1545
На форуме: 526 час.
Репутация: 110 (88%) ±
Инфо  Написать

mychatik, оххх, ты вместо того, чтобы незаметно слиться с темы, настрочил полотно из всего, что знал (а скорее накопипастил со справочников).
И своей тучей текста ни разу не ответил на вопрос (конкретно ни разу).

Ну это типа переименования файла.

Блеск. Для справки: mod_rewrite лишь меняет (интерпретирует) url и никак не затрагивает имя файла.

Применяется для "укорачивания" длинных названий файлов в ссылках.

mod_rewrite ВНЕЗАПНО чаще всего удлиняет url, а не укорачивает его, но делает его понятным. Пример: /post.php?id=1 и /post/lorem_ipsum_sit_dolor_amet

Но в плане СЕО - делать так нежелательно.

Еще одна жемчужина. Как раз таки в плане сео это очень даже желательно. Адрес /about намного привлекательнее для поисковиков, чем /page.php?id=2

А вот насчет дублей я и спрашивал. Но ответ на мой конкретный (понравилось мне это твое выделение) случай ты не дал.
Вот нахрен мне пример редиректа для всего сайта? Или для содержимого подкаталога? Или со старого файла на новый?

Если бы ты не поленился и проверил (ну на крайняк почитал бы), то знал бы, что:
если установлено правило

то код

приведет к бесконечному редиректу.

Просто для справки. Ты ж так много знаешь про сео. Тогда нужно знать, что при редиректе со старого файла на новый нужно использовать 301 редирект:

Поэтому бред. Дальше.

<Files file.php>
order allow,deny
deny from all
</Files>

Каким боком этот код к описываемой проблеме? Просто так блеснуть всем, что знал? Это вообще из другой области задач.

Но, конечно, так делать нельзя. Иначе файл будет недоступен.

Спасибо, кэп.

Возможен только вариант редиректа на /alias, при обращении к /file.php

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

Создание красивых URL

Даже пример есть. 5 баллов вообще. Зачем ты привел эту кучу кода, если я с него и начал?

Словом, иди лесом и не засоряй своими ответами тему.

Отредактированно TheDark (2017-01-07 00:57:12)

Неактивен

#118 

TheDark
Знаток
Зарегистрирован: 2010-08-01
Сообщений: 1545
На форуме: 526 час.
Репутация: 110 (88%) ±
Инфо  Написать

Вопрос по ajax/json.
Сервер отвечает (показывая валидный json) таким образом:

но функция jQuery.parseJSON(data) возвращает ошибку. если сделать alert(data), то увижу - [object Object]
Однако, если убрать заголовок (header("Content-Type: application/json; charset=UTF-8")), то все становится ок.

Как это исправить? Я думал, что лучше всего с помощью заголовка однозначно указать тип данных. Даже в самом скрипте указал dataType: 'json', но все равно ошибка.

Отредактированно TheDark (2017-10-26 16:48:05)

Неактивен

#119 

Trilby
miss me?
Имя: Алексей
Откуда: Default City
Зарегистрирован: 2006-08-01
Сообщений: 8479
На форуме: 798 час.
Репутация: 765 (94%) ±
Инфо  Вебсайт  Написать

Неактивен

#120 

TheDark
Знаток
Зарегистрирован: 2010-08-01
Сообщений: 1545
На форуме: 526 час.
Репутация: 110 (88%) ±
Инфо  Написать

Trilby, я либо не понял, либо там нет ответа на вопрос. У человека там невалидный json был, добавил кавычки и все стало ок.
У него запрос не проходил вообще (вызывался error), у меня проходит (success), но не читабельный ответ.
json у меня правильный (потому что json_encode), но при соответствующем заголовке (без него все ок) он не парсится функцией jQuery.parseJSON().
Мб это баг в jquery или я что-то не так делаю?

Консоль:

upd. с заголовком стало работать только если в запросе поставить dataType: 'text'
хз чего я заморочился с этим, просто не нравится, когда чего-то не понимаю

Отредактированно TheDark (2017-10-26 20:06:11)

Неактивен

[ Generated in 0.009 seconds, 9 queries]