Программный анти-шаблон - это широко используемое решение конкретной проблемы программирования, часто утверждающее, что он является реальным [тег: шаблоны-шаблоны]. Но такое решение обычно приводит к неблагоприятным последствиям для масштабируемости, тестируемости и обслуживания приложения.
Антишаблон можно рассматривать как «наихудшее» решение проблемы в том смысле, что он может «работать» по прямому назначению, но иметь нежелательные побочные эффекты или нести технический долг. Анти-паттерны могут возникать из-за неправильного образования, недостаточного опыта или простого невежества.
Короче говоря, это анти-шаблон применения нефильтрованного пользовательского ввода непосредственно к строке запроса базы данных. Это может показаться быстрым и простым решением для запроса данных, однако может привести к повреждению данных, нарушениям безопасности и т. Д.
Пример:
query-string = "select * from users where id='" + userid + "';"
Предполагая, что переменная userid
получена непосредственно от пользователя, злоумышленник может вызвать проблемы, установив значение, которое может вызвать неожиданное поведение:
userid = "' or 1=1;drop table users"
[ 118] Тесная связь Вместо того, чтобы разделять две отдельные части приложения (CSS и HTML; Business Logic и View в приложении MVC), части смешиваются так, что изменение одной из них требует изменения другой.
Пример:
CSS
.yellow { color: yellow; }
HTML
<div class="yellow">foo</div>
Чтобы изменить форматирование, необходимо изменить либо контент (HTML), подставив другое имя класса или определение класса (CSS) должно быть изменено на то, что не соответствует его имени.
В Википедии есть другие примеры .