Как защитить сайт от копирования? — Хабр Q&A
Демонстрация с экрана через скайп однозначное решение. Почему? Потому что простое.
Если вы конечно работаете с крутым менеджером с дичайшим опытом в разработке — решение так себе, он будет вас колупать за все и про все, и тестировать и пинать и тд. Впрочем вы можете и обычного человека попробовать научить виртуальным машинам, киоскам, тимвьюверам, серверам и о том, что на сайт вообще-то можно попасть не только из Яндекса. Но, оно вам надо?
Учить заказчика — дело неблагодарное. Если заказчик ХОЧЕТ учится — держитесь за него обеими руками. Обычно ваша попытка чему-то его научить воспринимается как понты, и снижает вашу ценность как профессионала. Главное что — ни в коем случае не делайте на его хостинге. За примером далеко не надо ходить — когда директорам и чиновникам что-то нужно — они не взывают к любви, они просто убивают тех, кто им мешает. Так и тут, пока вы «играете в бизнес» — он добрый, появляется возможность вас кинуть — вас кинут.
При попытке ныть — предупреждение его, но вежливо и нежно, дескать извините, это я на прошлой работе еще так привык
Вторая попытка — ныть — оправдываешься что у тебя принцип
Третья попытка — выносишь мозг с обьяснением своей позиции
Четвертая попытка — кидаешь его на бабло
Если он не платит а уже ноет — можешь кстати это в качестве причины использовать. Ну типа ты ж не платиш — какая тут работа на твоем хостинге, мы дескать вообще не друзья.
Больше уверенности, осознай что единственная цель нео-бизнесмена — сколотить бабла. Осознание со временем придет, когда кинут тебя раз 20 за жизнь. Пока кинули 2-3 раза еще бесит несправедливость, потом пройдет, поймешь что есть люди толковые — ради них на все идешь, а есть хитрожопые, таких через некоторое время начинаешь детектить.
Ответ написан
Единственный рабочий вариант при демонстрации вёрстки и удобный для всех:
Виртуалка/VPS + браузеры в режиме киоска + TeamViewer/VNC
——————-
Демонстрация через Skype — абсолютно неприемлемый метод: не проверить в различных браузерах, не потестировать удобство и масштабирование, плохое качество при передаче изображения и т.
Я бы не стал работать с верстальщиком, который для демонстрации использует исключительно Skype, а не нормальные средства, позволяющие Заказчику САМОМУ проверять корректность вёрстки в различных браузерах и валидность стандартов такой вёрстки.
А изначально, при начале работы с новым человеком, я бы, всё-таки, давал микро-тест на вёрстку и выравнивание из 2-3 элементов, смотрел бы его GitHub и читал бы отзывы в портфолио и после, договаривался бы ПО-ЧЕЛОВЕЧЕСКИ, а не начиная взаимоотношения с негатива.
Ответ написан
1. Отсылать фотографию вёрстки и фотографию кода (если хотят посмотреть валидность)
2. Показывать упрощённую вёрстку без скриптов
3. При сдаче сдавать 1 страницу, брать оплату, сдавать ещё 1 ещё оплата
4. Не работать с теми кому не доверяешь ))
5. Ну про предоплату я не говорю, хотя категорическое отсутствие предоплаты бывает странно. Я когда от имени компании заказываю вёрстку (несложные проекты) всегда вносим около 30% как предоплату, понятно что даже если что-то пойдёт не так, то для компании это небольшие деньги.
Ответ написан
Комментировать
Как защитить сайт от копирования контента
Как защитить сайт от копирования контента — информация на сайте umi-cms.ru+7 (812) 309-03-15 Все контакты
0
Разделы сайта
Статьи
Отправить запросОбновленияVIP-ЗаботаУсловияВыбор хостингаСтатьи
Закажите сайт по телефону 8-800-5555-864
Представьте ситуацию: вы создали сайт и специально для него организовали выездную фотосессию или заказали иллюстрации. Вложены немалые средства, получились классные изображения, которые вы загрузили на сайт. Через некоторое время вы замечаете свои чудесные фото или картинки на чужом веб-ресурсе. Более того, чужой сайт популярнее вашего, и теперь вас считают плагиатором клиенты, а поисковики опускают ваши позиции из-за «копирования чужого контента». Неприятно, правда? Такое встречается сплошь и рядом и касается не только изображений. Уникальные статьи, видео, картинки, описания товаров — крадут всё. В этой статье мы разберемся, как бороться с копированием контента, рассмотрим плюсы и минусы разных методов.
Почему это важно?
Прежде всего, это влияет на поисковое продвижение (SEO). Если вы не успели заявить авторство на свой контент и его скопировал более раскрученный сайт, то поисковые роботы с большей вероятностью обратят внимание на него, а вас понизят в выдаче за неуникальность. Этим пользуются конкуренты, оперативно ворующие контент. Потратить время, силы, деньги и отдать результаты труда конкурентам, а самим получить подозрение в плагиате — непривлекательная перспектива.
Отключение контекстного меню
Несколько строчек кода не дадут вызвать привычное меню правым кликом мыши с возможностью скопировать выделенный фрагмент. Этот способ защитит от легкого копирования текста, видеоролика или картинки с вашего сайта.
Плюсы:
Минусы
- Неудобно для обычных посетителей сайта ― они не смогут копировать контент, чтобы делиться им.А значит, и возможностей для продвижения становится меньше.
- Снижается шанс на внешние ссылки ― никто не будет переписывать текст вручную для цитирования.
Метка фотоаппарата
Любой цифровой фотоаппарат автоматически оставляет информацию к фотографии: дата, настройки гаджета во время снимка, характеристики устройства и даже GPS положение. Эти данные сохраняются в EXIF формате и являются частью JPEG или RAW-файлов, снятых на цифровую фотокамеру.
Плюс:
Минус:
- Изменить или снести EXIF данные способны и сами мошенники.
Хранение оригинала
Наличие исходника спорного фото или видеоматериала — железный аргумент, если дойдет до разбирательств. Оригинал обязательно оставляйте с исходным размером.
Плюсы:
Минусы:
Водяной знак
Простой, но рабочий способ. Помечаете картинку или ролик водяным знаком, и редкий мошенник станет запариваться, чтобы его убрать. В UMI.CMS есть специальный инструмент для наложения водяного знака на фотографии ― система сама пометит одно или несколько изображений вашим полупрозрачным логотипом или нужной отметкой. Располагать водяные знаки следует в сложных для удаления местах.
Плюсы:
Минусы:
Прозрачная обложка
Создаем прозрачное изображение с теми же параметрами, как и на фото. Накладываем эту обложку поверх картинки с помощью CSS или HTML. В итоге что получает вор при скачивании? Верно, прозрачную обложку.
Плюсы:
Минусы:
Скрытие кода
Для этого отлично подойдут программы-шифровщики (Advanced HTML Encrypt and Password, Encrypt HTML source 2.05), которые выдают вместо кода странные строчки и иероглифы.
Плюсы:
Минусы:
«Взято с сайта…»
Встречали такие приписки к скопированному тексту? Так вот это тоже метод борьбы с воровством. Функцию добавления ссылки прописывают в коде сайта, либо активируют плагинами.
Плюсы:
Минусы:
Кросспостинг
Лучший способ защиты контента от воровства — быстрая индексация поисковым роботом. Для этого применяйте все доступные средства. Самое очевидное — делиться материалом в своих же социальных сетях. Чем больше проявите активность, тем выше шанс застолбить контент страницы за своим сайтом.
Оригинальные тексты в Яндексе
Полезная функция для защиты текста от копирования.
Плюсы:
Минусы:
Жалоба
Заметили свои уникальные материалы на чужом сайте? Попробуйте договориться по-хорошему с владельцем этого ресурса. Если он не хочет удалять ворованный контент или игнорирует вас, то жалуйтесь через специальную форму в Google. Наказание не заставит себя долго ждать.
Итого
Защитить на 100% материалы своего сайта вряд ли возможно. Даже самые хитроумные способы можно обойти, если вор силен в технологиях. Тем не менее, таких «профессионалов» единицы, и их услуги стоят, скорее всего, дороже, чем создание контента. Боритесь с воровством при помощи способов из статьи и не позволяйте никому нагло копировать свой контент.
Твитнуть
Комментарии ВКонтакте
Защита файлов загрузки веб-сайта
Все больше и больше владельцев бизнеса открывают для себя ценность присутствия в Интернете. Как сами пользователи Интернета, им нравится иметь доступ к огромному количеству информации. Они узнают, что люди и компании, которые предоставляют эту информацию, часто первыми вступают в контакт с потенциальным клиентом.
Следующим логическим шагом будет стать одним из таких поставщиков информации. Это не только подтверждает ваш опыт, но и может дать вам первый шанс превратить пользователя сайта в клиента.
Кроме того, ваш сайт может стать отличным средством доставки важных информационных пакетов или обновлений цифровых продуктов вашим существующим клиентам.
Однако не вся информация должна быть общедоступной. Вы можете захотеть ограничить доступ к некоторой информации на вашем сайте по многим причинам. Распространенной причиной является то, что вы хотите продавать цифровые товары через интернет-магазин. Или, возможно, вы хотите доставлять обновления программного обеспечения через свой сайт: только клиенты, которые приобрели программное обеспечение, должны иметь возможность получать обновления. Или, может быть, вы хотите сделать конкурентную или конфиденциальную информацию доступной только для определенных пользователей вашего сайта, например, для вашего отдела продаж.
В этой статье описываются методы, которые можно использовать для размещения загружаемых файлов на веб-сайте и предоставления доступа только определенным пользователям.
Ограничение доступа к файлам
Вы не можете легко ограничить доступ к любому файлу, размещенному на вашем веб-сайте. Независимо от того, насколько вы изобретательны в именовании файлов, в конечном итоге вам придется дать кому-то URL-адрес, и с этого момента ваша безопасность исчезнет.
Лучший способ предотвратить несанкционированный доступ — полностью удалить файл с вашего веб-сайта. Некоторые люди вместо этого предлагают файлы через FTP. Однако для настройки FTP-доступа требуются определенные навыки системного администрирования и административный доступ к самому веб-серверу. Если ваш сайт размещен кем-то другим, у вас может не быть такого доступа, даже если у вас есть опыт. И FTP, конечно, не имеет смысла в контексте интернет-магазина.
Другой ответ — играть роль привратника и использовать электронную почту в качестве механизма доставки. Этот ответ слишком ручной, чтобы быть практичным. Электронная почта особенно неприемлема для интернет-магазина, где мгновенная доставка является частью ожиданий покупателя.
Итак, что теперь? Вы хотите доставлять файлы через HTTP, но не хотите, чтобы файлы находились на веб-сайте.
Создать файловый шлюз
Решение состоит в том, чтобы доставлять файлы через HTTP, но использовать программу, а не URL-адрес. Программа действует как файловый шлюз: она проверяет, имеет ли пользователь право на загрузку файла, и если да, то считывает файл из не-веб-папки на сервере и передает его клиенту.
Механика довольно проста. В этой статье представлен пример сайта, демонстрирующий методы, которые вам необходимо использовать. Вы можете загрузить весь образец сайта, используя ссылку на боковой панели «Загрузить код» на этой странице.
Вот обзор процесса:
- Укажите место для ваших защищенных файлов.
- Установите механизм безопасности для идентификации авторизованных пользователей.
- Создайте страницу, которая проверяет запросы и передает защищенные файлы авторизованным запрашивающим сторонам через HTTP.
Создание папки для защищенных файлов
Первым шагом является согласование новой стратегии организации файлов с вашей хостинговой компанией (или системным администратором). Цифровые загрузки становятся довольно распространенным явлением, поэтому ваша хостинговая компания должна понимать, чего вы пытаетесь достичь.
Как я уже упоминал, главное — удалить файлы с веб-сайта. Вы не можете поместить файлы в корневую папку вашего сайта или любую подпапку вашего сайта. Однако по умолчанию большинство хостинговых компаний настраивают доступ только к папке верхнего уровня вашего сайта.
Вам необходимо согласовать новую структуру папок примерно так:
FTPRoot Веб-сайт Загрузки
Папка FTPRoot — это место, куда вы попадаете, когда подключаетесь к своему сайту через FTP для обслуживания сайта. Эта папка должна быть на один уровень выше вашего веб-сайта.
Папка WebSite именно то, что вы ожидаете: она содержит все файлы и подпапки, из которых состоит ваш Web-сайт. Когда вы настраиваете свой сайт в IIS, эта папка является домашним каталогом.
В папку «Загрузки» вы помещаете защищенные загружаемые файлы.
Эта новая структура позволяет вам поддерживать свой веб-сайт и загружаемые файлы, не заставляя вас размещать загружаемые файлы под своим веб-сайтом.
Обратите внимание, что, как и папка вашего веб-сайта, папка «Загрузки» должна разрешать доступ для чтения системной учетной записи пользователя Интернета (IUSR_MachineName) или любой другой учетной записи, которая запускает анонимные подключения к вашему сайту. Вам нужно сделать это, потому что ваша страница загрузки будет работать под этой учетной записью. Если вы используете .NET, могут потребоваться дополнительные разрешения в зависимости от версии IIS, которую вы используете, и учетной записи, которая запускает ваше приложение.
Ваш хост должен предвидеть эту необходимость, но если у вас возникают ошибки прав доступа при попытке загрузить файлы, проверьте права доступа к папке. Разрешения — это одна из первых вещей, которую следует учитывать при возникновении проблем с загрузкой.
Создание механизма безопасности
Следующее, что нужно сделать, это выяснить, как вы будете идентифицировать пользователей, которым разрешен доступ к загружаемым файлам. У каждого приложения свои требования, но большинство подходов являются вариациями некоторых базовых моделей. Вот несколько распространенных моделей, используемых сегодня в Интернете.
Модель интернет-магазина
Если у вас есть интернет-магазин, вам нужен способ доставки только тех файлов, которые покупатель приобрел. Ваша корзина должна отслеживать, какие файлы связаны с какими продуктами. Вы можете хотеть или не хотеть предоставить клиентам возможность получить продукты позже. Если вы хотите предоставить им такую возможность, вы можете сгенерировать пароль, который они должны будут использовать при возвращении на сайт.
Модель интернет-магазина по существу ориентирована на безопасность заказов. Только человек с правильным номером заказа и паролем может получить доступ к файлам, связанным с этим заказом. В этой модели обычно срок действия пароля истекает через несколько дней или ограничивается количество попыток загрузки (или и то, и другое), чтобы уменьшить потенциальные потери, если ваш клиент передаст пароль другим.
Модель репозитория
Вы можете выбрать модель репозитория, если у вас есть репозиторий файлов, которые вы хотите разместить в сети, но вы хотите ограничить доступ к ним определенным пользователям. Например, вы можете использовать свой веб-сайт как место, где ваши сотрудники могут получить конфиденциальную информацию о компании.
В этой модели вы часто управляете доступом по ролям. Только лица с определенной ролью могут получить доступ к определенному набору файлов. Обычно вы отслеживаете отношения между пользователями, ролями и файлами в базе данных и аутентифицируете пользователей через страницу входа.
Пример, который я покажу вам в этой статье, представляет собой очень простую версию модели репозитория. Под простым я подразумеваю, что я собираюсь использовать жестко закодированную информацию для входа вместо базы данных для управления доступом к файлам. Любой, кто знает имя пользователя и пароль для входа в систему, может получить доступ к хранилищу файлов. Это не гламурно, но это легко объяснить.
Создать страницу загрузки
Последний шаг — создать страницу, которая аутентифицирует пользователя и передает запрошенный файл. Страница загрузки отвечает за чтение файла из папки загрузки в память и последующую передачу файла в клиентский браузер.
Даже если вы вызываете страницу загрузки с помощью URL-адреса, программа не инициирует передачу файла, если ваш сеанс не авторизован для доступа к запрошенному файлу.
Теперь, когда вы знаете основы, я могу продемонстрировать один подход на примере.
Пример приложения
Примером является простое приложение ASP, защищающее папку с текстовыми файлами. Здесь я работаю с текстовыми файлами, потому что это позволяет мне использовать объект FileSystemObject для выполнения файлового ввода-вывода. Работа с бинарными файлами требует немного больше усилий, потому что вам нужен какой-то компонент, способный читать бинарные файлы. Я расскажу об этом позже.
Пример приложения состоит из трех страниц ASP: Login.asp, FileList.asp и DownloadFile.asp.
Пожалуйста, имейте в виду, что цель этого примера — дать вам хорошее понимание концепций, представленных в этой статье. Методы, используемые для приложения, отдают предпочтение простоте, а не надежности и масштабируемости. (Другими словами, не ругайте меня за использование объекта Session: у вас всегда есть возможность использовать лучший механизм состояния в рабочем приложении. )
Login.asp
Страница Login.asp представляет собой простой шлюз проверки подлинности, который запрашивает у пользователя имя пользователя и пароль. Если информация верна, пользователь перенаправляется на страницу FileList.asp. Если проверка не удалась, пользователь должен повторить попытку.
За приложением не стоит база данных, поэтому необходимые имя пользователя и пароль просто жестко закодированы на странице ASP. Любой, кто знает правильную комбинацию имени пользователя и пароля, может получить доступ к файлам.
На странице определены две процедуры: ValidateForm и DisplayForm. Когда пользователи отправляют форму, страница выполняет ValidateForm. Если проверка прошла успешно, страница перенаправляется на FileList.asp.
Выдержка из Login.asp
Dim mstrUserName, mstrPassword, mstrUserMessage Если Лен(Запрос.Форма) > 0 Тогда Если ПроверитьФорму() Тогда Ответ.Перенаправление("СписокФайлов.asp") Еще Вызвать DisplayForm() Конец, если Еще Вызвать DisplayForm() End If
Процедура DisplayForm проста. Он просто отображает форму входа вместе с любым сообщением об ошибке, которое могло быть сгенерировано.
Процедура ValidateForm более интересна, поскольку она аутентифицирует сеанс пользователя.
Процедура ValidateForm из Login.asp
Функция ValidateForm() Dim boolПродолжить ' Удалите всю предыдущую информацию для входа. Сессия("Логин.ИмяПользователя") = "" ' Получить ввод из отправленной формы: mstrUserName = Запрос.Форма("txtUserName") mstrPassword = Запрос.Форма("txtPassword") ' В реальном приложении у вас будет поиск в базе данных здесь или ' что-то более надежное, чем жестко закодированные значения. boolContinue = (LCase(mstrUserName) = "барт") Если boolПродолжить Тогда boolContinue = (mstrPassword = "CowaBunga!") Конец, если Если boolПродолжить Тогда Сессия("Логин.ИмяПользователя") = mstrUserName Еще mstrUserMessage = "Неверное имя пользователя или пароль. Повторите попытку." Конец, если ValidateForm = boolContinue Завершить функцию
Для простоты в примере используется переменная сеанса для хранения состояния входа пользователя. Для производственного приложения этот подход не особенно масштабируем, но для примера он работает достаточно хорошо.
На каждой из «защищенных» страниц сайта, включая страницу FileList и страницу DownloadFile, вверху есть небольшой фрагмент кода для предотвращения несанкционированного использования:
Логика проверки входа
' Перенаправить на форму входа, если имя пользователя не было записано в сеанс. Если Лен(Сеанс("Логин.ИмяПользователя")) = 0 Тогда Ответ.Редирект("Логин.asp") Конец, если
Процесс аутентификации прост: если имя пользователя не было задано в сеансе, перенаправьте запрос обратно на страницу входа.
FileList.asp
После успешного входа в систему вы увидите страницу FileList.asp, на которой можно выбрать файлы для загрузки.
В файле FileList.asp отображаются все файлы, доступные для загрузки, а также их размер. Когда вы щелкаете ссылку на файл, вы вызываете файл DownloadFile.asp, описанный ниже.
Обратите внимание, что ссылка не является прямым URL-адресом загружаемого файла, поскольку к загружаемому файлу нельзя получить доступ с помощью URL-адреса. Файлы не существуют в доступной через Интернет папке.
Хотя ссылки вызывают DownloadFile.asp, ваш браузер фактически не уходит со страницы FileList.asp. После загрузки вы можете нажать кнопку обновления, чтобы увидеть, что произошло во время загрузки. Обновление обновляет раздел страницы «Результаты предыдущей передачи», в котором отображается информация о состоянии, полученная DownloadFile.asp.
Вместо жесткого кодирования ссылок на файлы FileList.asp создает их динамически с использованием FileSystemObject, как показано ниже:
Динамическое создание списка файлов с помощью FileSystemObject
Выберите файл для загрузки
Файл сервера | Размер |
<%= objFile.Name %> | <%=Числоформата(objFile.Size, 0) %> |