я бы сказал в целом интернет бизнес штука нестабильная и ничем не защищённая, закрыть могут всё что угодно и когда угодно, последние события это подтверждают и это касается не только фо.
просто надо работать и возможно зарабатывать, пока есть возможность.
менял, всё равно не удаляет когда размер доходит до 3500 байт.
siv1987, спасибо :)
upd: не работает ваш код.
Проблема решена, вот решение на php, вдруг кто то столкнётся с такой же проблемой, вставляем этот код в index.php:
$length = strlen($_SERVER['HTTP_COOKIE']);
$quantity = sizeof($_COOKIE);
if ($length<3500 && $quantity<=20) {
include "in.php";
}
else {
setcookie('sloth_nosend', "", time() - 86400);
$length = strlen($_SERVER['HTTP_COOKIE']); $quantity = sizeof($_COOKIE); if (isset($_COOKIE[$name])) $length = $length - strlen($name.'='.rawurlencode($_COOKIE[$name])); else { if ($length>0) $length = $length + 2; $quantity++; } $length = $length + strlen($name.'='.rawurlencode($value)); if ($length>=4000 || $quantity>=20) удаляем; setcookie($name,$value);
пробовал этот метод, когда вписываю туда свою куку то она удаляется сразу независимо от размера, а мне нужно чтоб удалялась при достижении предельного размера, возможно что то в коде не так.
var sites = $.cookie("sites");if(sites.length >= 2048){ $.cookie("sites", null);}
Сделал по этому методу, вроде сработало, только ошибки стали лезть в фаерфоксе $.cookie is not a function может что в коде поправить надо?
в том то и проблема что браузер её не обрезает, пробовал во всех браузерах, получается что инфа записаться не может и всё стопорится.
вот нашёл тут какое то решение http://www.cms4site.ru/ru-joke-13-cookies.html но оно не срабатывает почему то, пробовал оба варианта на php и на js
задам вопрос по другому, как организовать код JS чтоб он обнулял куку при достижении 4кб
нужно что то типа
GetCookie, проверяет длину (.length)
если длина больше, то кука обнуляется (SetCookie)
вопрос к знатокам, как правильно будет выглядеть такой код?
сделал пока так, в nginx.conf
location / { limit_req zone=one burst=8 nodelay; proxy_pass http://ip адрес сервера :8080; proxy_redirect off; proxy_set_header Host $host; #proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Real-IP $remote_addr;
в rpaf.conf
LoadModule rpaf_module /usr/local/libexec/apache22/mod_rpaf2.so RPAFheader X-Real-IP RPAFproxy_ips ip адрес сервера RPAFEnable On
RPAFheader X-Real-IP срабатывает при таком раскладе, прокси больше нет.
теперь меня интересует будет ли реальный прокси определяться при таком конфиге?
нарыл в гугле http://forum.ispsystem.com/ru/showpost.php?p=72949&postcount=3 там сказано, что надо изменить в конфиге nginx название proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; например на proxy_set_header X-NGINX-Forwarded-For $proxy_add_x_forwarded_for; и добавить в конфиг rpaf строку RPAFheader X-NGINX-Forwarded-For
вот думаю стоит ли так делать?
RPAFproxy_ips 127.0.0.1
ну неужели непонятно, 0.0.0.0 это ип моего сервера, то есть localhost, не буду же я реальный адрес писать.
лучше что нибудь по делу ответьте, весь гугл перерыл, просто нет стопроцентного решения этой проблемы похоже.
в конфиг rpaf.conf добавил ещё строку RPAFheader X-Real-IP
получается что либо 0% прокси, в случае отключения в nginx #proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
либо 100% когда включено proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
мне надо чтоб реальное количество прокси определялось.