Сегодня я понял, в чем проблема. Я тестировал эти коды в редакторе и в процессе разработки для некоторой отладки. Когда я собрал его для Windows должным образом, чтение было намного быстрее, и все строки были прочитаны примерно за 30 секунд.
Вы не делаете.
Это - кардинальное правило программирования, особенно в этот день и возраста, что Вы никогда не доверяете никакому входу, который прибывает от пользователя, браузера, клиента, и т.д.
Это - также кардинальное правило программирования этого, Вы не должны, вероятно, пытаться реализовать шифрование и безопасность сами, если Вы действительно не знаете то, что Вы делаете. И даже если Вы действительно будете знать то, что Вы делаете, то Вы только останетесь на шаг впереди tard-взломщиков. Умные все еще собираются смеяться над Вами.
Сделайте дополнительный запрос, чтобы гарантировать, что зарегистрированный пользователь имеет правильный набор полномочий. Это сделает общие жизни просто что намного более простыми.
Vyrotek: метод ввода не важен. ДОБЕРИТЕСЬ, POST, шифровал/запутывал, ДОБИРАЮТСЯ - никакая реальная разница. Неважно, способ, которым Ваше приложение получает команды, для выполнения административного действия, это должно удостовериться, что выходящему пользователю разрешают сделать материал, который он хочет. Проверка разрешения должна произойти ПОСЛЕ ТОГО, КАК команда получена и ПРЕЖДЕ ЧЕМ она будет выполнена. Иначе это не безопасность вообще.
Можно также позволить только запросам Сообщения Удалять действие контроллера при помощи Принять атрибута Глаголов, как замечено ниже.
[AcceptVerbs(HttpVerbs.Post)]
public ActionResult Delete(int? id)
{
//Delete
}
Затем Вы могли также использовать маркер антиподделки, как обсуждено здесь:
Рассмотрите использование техники, обрисованной в общих чертах в статье Tip № 46 Stephen Walther – не используют, Удаляют Ссылки, потому что они создают Дыры в системе безопасности, который использует [AcceptVerbs (HttpVerbs. Удалите)]
Я сделал броские вещи, берут querystring, сжимают его, Base64 или просто преобразовывают в шестнадцатеричную систему, кодируют его, так, чтобы "commentid=4&userid=12345" стал "code=1a2b23de12769"
Это - в основном "безопасность через мрак", но это действительно делает большую работу для кого-то пытающегося взламывать сайт.
Вы не можете легко сделать этого.
У меня есть любящие памяти сайта, который использовал URL действия, чтобы сделать, удаляет.
Все было хорошо, пока они не запустили поиск, проверяющий интранет.
Ooops, до свидания данные.
Я рекомендовал бы решение, посредством чего Вы не используете querystrings ни для чего, что Вы не хотите быть отредактированными.