** Предупреждение: подход, описанный в этом ответе, применим только к очень конкретным сценариям и не является безопасным, поскольку атаки SQL-инъекции не только полагаются на возможность вставлять X=Y
. **
Если злоумышленники пытаются взломать форму с помощью переменной PHP $_GET
или с помощью строки запроса URL, вы сможете поймать их, если они не защищены.
RewriteCond %{QUERY_STRING} ([0-9]+)=([0-9]+)
RewriteRule ^(.*) ^/track.php
Поскольку 1=1
, 2=2
, 1=2
, 2=1
, 1+1=2
и т. д. ... являются распространенными вопросами к базе данных SQL злоумышленника. Возможно, он также используется многими хакерскими приложениями.
Но вы должны быть осторожны, чтобы не переписывать безопасный запрос с вашего сайта. Вышеупомянутый код дает вам возможность переписать или перенаправить (зависит от вас) эту динамическую строку запроса, зависящую от хакерства, на страницу, в которой будет храниться IP-адрес злоумышленника или EVEN THEIR COOKIES, история , браузера или любой другой конфиденциальной информации, поэтому вы можете иметь дело с ними позже, запретив их учетную запись или контактные органы.
В Visual Studio 2008, следующие работы.
Находят файл AssemblyInfo.cs и находят эти 2 строки:
[assembly: AssemblyVersion("1.0.0.0")]
[assembly: AssemblyFileVersion("1.0.0.0")]
Вы могли попытаться изменить это на:
[assembly: AssemblyVersion("1.0.*")]
[assembly: AssemblyFileVersion("1.0.*")]
, Но это не даст Вам желаемый результат, Вы закончите с Версией продукта 1.0.* и Версия файла [1 110] 1.0.0.0 . Не, что Вы хотите!
Однако, если Вы удаляете вторую из этих строк и просто имеете:
[assembly: AssemblyVersion("1.0.*")]
Тогда компилятор установит Версию файла, чтобы быть равным Версии продукта, и Вы получите свой желаемый результат автоматически инкрементного продукта и версии файла, которые находятся в синхронизации. Например, 1.0.3266.92689
Каждый раз я делаю сборку это автоинкременты младшая значащая цифра.
у меня нет идеи, как обновить другие, но уже необходимо, по крайней мере, видеть это...
Перейдите к Проекту | Свойства и затем информация о блоке и затем Версия блока и поместите * в последнее или предпоследнее поле (Вы не можете автоинкремент Главные или Незначительные компоненты).
Используйте задачу AssemblyInfo от Задач Сообщества MSBuild ( http://msbuildtasks.tigris.org/ ) проект и интегрируйте его в Ваш .csproj/.vbproj файл.
Это имеет много опций, включая одну для связи номера версии с датой и временем дня.
Рекомендуемый.
С прямо сейчас, для моего приложения,
string ver = Application.ProductVersion;
возвраты ver = 1.0.3251.27860
значение 3251 является количеством дней с 01.01.2000. Я использую его для помещения даты создания версии на экран-заставку моего приложения. При контакте с пользователем я могу спросить дату создания, которую легче передать, чем некоторое длинное количество.
(я - индивидуальный отдел, поддерживающий небольшую компанию. Этот подход не может работать на Вас.)
Это находится в Ваших свойствах проекта под , Публикуют
Установка a * в номере версии в AssemblyInfo или под свойствами проекта, как описано в других сообщениях не работает со всеми версиями Visual Studio/.NET.
Afaik это не работало в VS 2005 (но в VS 2003 и VS 2008). Для VS 2005 Вы могли использовать следующее: Автоматическая Инкрементная сборка версии Visual Studio 2005 года и число пересмотра на времени компиляции .
, Но знать, что изменение номера версии автоматически не рекомендуется для сборок со строгим именем. Причина состоит в том, что все ссылки на такой блок должны быть обновлены каждый раз, когда блок, на который ссылаются, восстановлен вследствие того, что ссылки сборки со строгим именем всегда являются ссылкой на определенную версию блока. Microsoft самостоятельно изменяет номер версии блоков Платформы.NET, только если существуют изменения в интерфейсах. (NB: я все еще ищу ссылку в MSDN, где я считал это.)
Установите номер версии на "1.0.*" и это автоматически заполнит последние два числа с датой (в днях от некоторой точки) и время (половина секунд с полуночи)
Чтобы заставить попытку номеров версий
System.Reflection.Assembly assembly = System.Reflection.Assembly.GetExecutingAssembly();
System.Reflection.AssemblyName assemblyName = assembly.GetName();
Version version = assemblyName.Version;
устанавливать номер версии, создавайте/редактируйте AssemblyInfo.cs
[assembly: AssemblyVersion("1.0.*")]
[assembly: AssemblyFileVersion("1.0.*")]
Также как примечание стороны, третье число является количеством дней с 01.02.2000, и четвертое число является половиной суммы общих секунд в день. Таким образом, если Вы компилируете в полночь, это должен быть нуль.
откройте файл AssemblyInfo.cs и изменение
// You can specify all the values or you can default the Build and Revision Numbers
// by using the '*' as shown below:
// [assembly: AssemblyVersion("1.0.*")]
[assembly: AssemblyVersion("1.0.0.0")]
[assembly: AssemblyFileVersion("1.0.0.0")]
к
[assembly: AssemblyVersion("1.0.*")]
//[assembly: AssemblyFileVersion("1.0.0.0")]
, можно сделать это в IDE путем попытки проектировать-> свойства-> информация о блоке
, Это однако только позволит Вам автоматическому инкременту версию блока и даст Вам
Версия файла блока: подстановочный знак (" * ") не позволяется в этом полевом
окне сообщения при попытке места * в поле версии файла.
Поэтому просто открывают assemblyinfo.cs и делают это вручную.
Установите надстройку версии сборки . Это дает вам больше контроля, чем опция *.
Другим вариантом изменения номеров версий в каждой сборке является использование задачи задача MSBUILD.COMMUNTITY.Tasks . Просто скачайте их установщик, установите его, затем адаптеруйте следующий код и вставьте его после
в вашем .Csproj
. ] Файл:
<Import Project="$(MSBuildExtensionsPath)\MSBuildCommunityTasks\MSBuild.Community.Tasks.Targets" />
<Target Name="BeforeBuild">
<Version VersionFile="Properties\version.txt" Major="1" Minor="0" BuildType="Automatic" StartDate="12/31/2009" RevisionType="BuildIncrement">
<Output TaskParameter="Major" PropertyName="Major" />
<Output TaskParameter="Minor" PropertyName="Minor" />
<Output TaskParameter="Build" PropertyName="Build" />
<Output TaskParameter="Revision" PropertyName="Revision" />
</Version>
<AssemblyInfo CodeLanguage="CS"
OutputFile="Properties\VersionInfo.cs"
AssemblyVersion="$(Major).$(Minor)"
AssemblyFileVersion="$(Major).$(Minor).$(Build).$(Revision)" />
</Target>
Примечание: Адаптируйте свойство StartDate в свой локаль. В настоящее время он не использует инвариантную культуру.
Для третьей сборки 14 января 2010 года это создает версию ISPO.CS
с этим содержимым:
[assembly: AssemblyVersion("1.0")]
[assembly: AssemblyFileVersion("1.0.14.2")]
Этот файл, затем должен быть добавлен в проект (через добавить существующий элемент ), а также сознание и
и линии сборки
, должны быть удалены из assumbo.cs
.
Различные алгоритмы изменения компонентов версии описаны в $ (MSBUILDCOMSIONSPATH) \ MSBUILDCOMMUNTYTASKS \ MSBUILDCOMMMUNTITY.Tasks.Chm
и свойств версии .