Как использовать SetEnv с параметром URL

Вы не можете препятствовать тому, чтобы люди взломали Ваше программное обеспечение.

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

Так, при поиске метода для борьбы с недопустимым keygenerators за программное обеспечение и Вы не хотите использовать assymetric шифрование из-за длинных регистрационных кодов, которые это генерирует, Вы могли бы взглянуть на Частичную Ключевую Проверку.

Частичная Ключевая Проверка удостоверяется, что каждый недопустимый keygenerator работает только на один конкретный релиз Вашего программного обеспечения. В основном то, что Вы делаете, должно удостовериться, что каждый релиз Вашего программного обеспечения только связывается с кодом для проверки НЕКОТОРЫХ цифр регистрационного кода. Который цифры точно случаен, таким образом, взломщики должны были бы перепроектировать много различных версий Вашего программного обеспечения и объединить все это в один keygenerator для выпуска keygenerator, который работает на все версии программного обеспечения.

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

я использовал Частичную Ключевую Проверку в моем (C++) более новые условно-бесплатные игры, и это было очень эффективно. Прежде чем у нас было много проблем с keygenerators, с которым мы не могли бороться. Afterewards там были большим количеством трещин и нескольких keygenerators, которые работали только на ту конкретную версию игры, но никакой ключевой генератор, который будет работать со всеми версиями. Мы регулярно выпускали очень незначительные обновления игры и представлять все ранее существующие бесполезные трещины.

, кажется, существует открытый исходный код платформа.NET для Частичной Ключевой Проверки , хотя я не попробовал его.

5
задан l0b0 18 August 2009 в 10:22
поделиться

2 ответа

Вы также можете установить переменные среды с помощью mod_rewrite. Фактически, вы уже это сделали (см. env / E flag ).


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

RewriteCond %{QUERY_STRING} ^((?:[^&]&)*)language=(en|fr|no)&?([^&].*)?$
RewriteRule ^ %{REQUEST_URI}?%1%3 [L,CO=language:%2,R]
RewriteCond %{HTTP_COOKIE} (^|[,\s])language=([^\s,;]+)
RewriteRule ^ - [L,E=prefer-language:%2]
SetEnvIf REDIRECT_prefer-language (.+) prefer-language=$1

Но было бы намного проще, если бы вы поместили идентификатор языка в путь URL, например / en /… :

SetEnvIf Request_URI ^/(en|fr|no)/ prefer-language=$1
SetEnvIf REDIRECT_prefer-language (.+) prefer-language=$1

Я не знаю, вам понадобится дополнительная / секунда SetEnvIf переменная.

8
ответ дан 14 December 2019 в 01:13
поделиться

Похоже, что в SetEnv нет поддержки переменных, но вот рабочая конфигурация, если кто-то другой пытается сделать то же самое. Это более простой способ выбора языка, поскольку он просто копирует параметр language из ссылки в текущий URL-адрес, если он не изменен:

RewriteEngine On
RewriteBase /

# Keep the language parameter if specified in the last URL
RewriteCond %{HTTP_REFERER} ^(?:.*[&?])?language=(en|fr|no).*$
RewriteCond %{QUERY_STRING} !^(?:.*&)?language=(en|fr|no).*$
RewriteRule ^(.*)$ $1?language=%1 [redirect=permanent]

# Set the language from the URL parameter
RewriteCond %{QUERY_STRING} ^(?:.*&)?language=(en|fr|no).*$
RewriteRule ^ - [env=prefer-language:%1]

# Cache only when the language parameter is set
<IfDefine !prefer-language>
    Header set Vary *
</IfDefine>
1
ответ дан 14 December 2019 в 01:13
поделиться
Другие вопросы по тегам:

Похожие вопросы: