Титла: Забраняване на кеша в браузъра, no-cache meta tag Публикувано от: neter в Jul 16, 2013, 17:59 Стана ми интересно доколко бих могъл да защитя някоя картинка от сваляне през браузъра, та мъдренето ми засега стигна до следния PHP код:
Файл image.php Код
Файл page.php Код
Казано без код, страницата page.php не извиква директно картинката, а извиква PHP файла image.php, който има грижата да изобрази картинката, с което се скрива реалния път до картинката, прави се проверка валидността на хеширан стринг, валиден 1 секунда, с което се предотвратява самостоятелно извикване на image.php с картинката след тази секунда, и се добавят хедъри за забрана на кеша в браузъра, за да не може при цъкване с десен бутон върху картинката и опит за запазване, картинката да се запази от кеша, вместо да се мине през image.php, когато проверката с хеша няма да мине. По принцип, ако човек прави подобни опити за защити, няма да е зле да сложи и някой и друг JavaScript по въпроса, така че още в началото да откаже поне незапознатите. С това "защитата" не е завършена, не съм забравил нито за screenshot-ите, нито за това, че на скрипт с wget или curl ще му е достатъчна тази 1 секунда валидност на стринга за проверка, за да свали картинката чрез наличния в page.php хеш... Но не пълната защита е поводът да пусна тази тема. Поводът е, че с горните 3 защити в PHP кода (индиректното извикване на картинката, проверката със стринга и забраната на кеша) общо взето се получи добра забрана за сваляне на картинката в Google Chrome, при което в първия момент реших, че това ще е достатъчно откъм действията в браузъра. Ама ядец! Оказа се, че Google Chrome е единственият браузър, който се съобразява с meta tag-овете за забрана на кеша. Не че съм пробвал всички браузъри и всичките им версии на света, но пробвах с Firefox 22, Opera 12 и IE 8, и никой от тях не се съобрази със забраната на кеша - във всички тях си цъкаш десен бутон върху картинката, запазване на картинката и си изтегляш картинката като пич. Вярно, не с оригиналното ѝ име, но това няма никакво значение - картинката се изтегля и се изтегля от кеша. Та това ми е питанката. Пропускам ли нещо в начина, по който се опитвам да забраня кеша (за сефте го правя, но ровенията ми из Мрежата ме доведоха до тази сборка), или Google Chrome е единственият браузър, който се съобразява с HTML спецификацията по въпроса? Ако не пропускам нищо, това всеобщ бъг в браузърите ли ще е или някакъв бойкот на въпросния meta tag? П.П.: Темата по принцип е за функционалността на забраната на кеша, но ако на някой много му се пишат хрумвания по въпроса със защитите от изтегляне на картинки през браузъра, нека се чувства свободен да пише :) |