Добавил:
2200 7008 9480 6099 TKFF БЛАГОДАРНОСТЬ МОЖНО ТУТ ОСТАВИТЬ Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ДИПЛОМ 2025 / 4 курса_МТУСИ / 1 КУРС / Информатика / С# для чайников - Мюллер.pdf
Скачиваний:
0
Добавлен:
04.06.2025
Размер:
53.3 Mб
Скачать

 

Nev, ASP.NEТ Web Applicatioп - SecureForm

 

· ASP.NП4.5.2 T mpbtб

.)edu

 

А projectttmplateforCfeating A5P,NE1 'NIO Forms

 

. AsP.NПV/eb Forms letsycu build

 

 

 

11pplication,;dynamic...,ebsite шin9 вfamiliardrag-and-drop,

 

 

l!Vtnt•driven mcdeJ,Аd igr\surf&ce &ndhundredsof

Emp<y

Sing!• Pagt

i, COl'\trolsSOFhirtic;sted,andcompontpawtrfutлtsIJl·driv\etyouдJsites1&pidlywthbuildat.J

<JCC65,

 

IA'•b ЛPI

ШW..!:JJQf.Ь

 

j .AzureАР1 Арр

 

Applicaticn

 

 

 

 

 

Add foldtrs ond cor rderencб for:

 

дuthmti<otion: NoAutмntic.ltion

 

 

 

 

'':./ Wt!AJ fcmis O МVС

O Y{tЬAPI

 

 

 

0 Дddl,lnit163

Рис. 23.3. Выберите тип приложения из списка

Запустите проект.

Введите в текстовое попе <script>msgbox ( ) </script>..ne

Щелкните на кнопке.

и х с

q(Тд(Н mОП­Спu~ :T: iАЕ xunsryЧuЬМу­­

 

 

(,.

А potentially dangerous Request.Form value was detected

from the client (ct/00

 

 

 

 

$МдinContent$TextBox1 = "<script>msgbox()</sc. . . ").

cfude

 

Oescrtptlon: ASP.NEТ de2cted data inthe requesllhatls polentiatty dangerous ь«.1use i1m'9hl

 

Н-П.1l markup о,.scripl:.

ThedatamighJ repre,entan attempl locomprom!se the security ofуош appf.cation, such аз а

 

cros.s-SOO swp(jng at13ck. trthis tfpe ofi:nputis app,opriate

yourapptication. youил indude code in э \\.-еЬ page !о

 

expAcitly аПо\•1 ii Formoreinformatlon, see http:1190.mkroюin.com/fv1Гtnkl?llnkI0"212874.

 

 

Exception

Sy'S'lem Web.HttpRequestvalidationException . А potentia.JI-J .dangerolf' Reque.s1 Fwm V.We

 

wasdetec.ted Oet41,15;ft"c.m Ьеclient {ctlO0SfttainContentSText8ax1•-<5Cript>msgЬox{)<lsc. -)

 

 

 

Sourc En-or:

ch-.:. qtnerat:eci th.i• \l'Ul•ndled. e.v;.::eptior. -=•r. or,ly

. •hown hen

 

 

Ih• ,1ou.:ce cc-de

tht!n

 

1:

il1&cd in 4ebuQ d• . То enable th.i!!, ple4!!"e tol.lo•,.; о:-:.е :)f ,:.h,e

Ьеlо.,,. .5ц;is,

 

r !!.t the \JU.:

 

:)f the H.le th,H, g net'&ti!;. 1;he errc-r.

 

1.

1!. d а R Ьuqc-tл;.e ct1 e<::ti·,•,e, 6.t the top

 

Ex•i::ple;

R

 

 

 

 

 

 

 

 

 

 

Рис. 23.4. Поумолчанию уязвимости скриптов блокированы

Наилучшие методы защиты приложений Web Forms

Помимо гарантии того, что ваше приложение Web Forms будет предотвра­ щать атаки SQL-инъекций и использование уязвимости сценариев, следу­ ет помнить о некоторых полезных методах защиты ваших веб-приложен ий.

Мoздз, н ,, шрнсероск, ьк венрео еrе, хечр, рирч

)) )) ))

))·

)).

)) ))

))

Регулярно обновляйте lnternet lnformation 5erver (115).

Выполняйте резервное копирование всего, что можно.

Избегайте использования переменной Querystring (значения по­

сле имени страницы в URL).

Не оставляйте комментарии в HTML. Любой пользователь может просмотреть НТМL-код и просмотреть ваши комментарии, выбрав просмотр исходного текста в браузере.

При обеспечении безопасности не полагайтесь на проверку на сто­ роне клиента - она может быть фальсифицирована.

Используйте надежные пароли.

Не полагайтесь на то, что пользователь отправил вам информацию из вашей формы и она безопасна. Форму легко подделать.

Убедитесь, что сообщения об ошибках не дают пользователю ника­ кой информации о вашем приложении. Отправляйте сообщения об ошибках по электронной почте, а не отображайте их пользователю.

)) Используйте 5ecure 5ockets Layer (55L).

·)) Не храните ничего важного в виде cookie.

)) Закройте все неиспользуемые порты вашего веб-сервера. )) Отключите 5МТР в 115, если только вы в нем не нуждаетесь.

)) Если вы разрешаете загрузку - выполняйте проверку на вирусы. )) Не запускайте ваши приложения с правами администратора.

) По возможности используйте временные cookie, устанавливая дату истечения их срока годности. Оставляйте файлы cookie активными только на время сеанса.

)) Ограничьте размер загрузок файлов. Это можно сделать в файле конфигурации Web . Config:

-

 

R

 

-

ж

R

 

-

ш

ш

Х . т p МдКп »R

Й

R

 

 

R

 

)) Помните, что ViewState в Web Forms легко обнаруживается.

516 ЧАСТЬ З Вопросы проектирования на С#

Таблица 23.1 . Распространенные пространства имен в System . Security

Пространство имен

Dг)cвтяh

"))г лл0,пяв,#

"cяО,вй ,ия т,п

0в 2я,еви2Оh

Oгв?гллй,пл

O,#й)h

Oвйп)г2и#

Описание

Базовые классы безопасности

Интеллектуальный контроль авторизации

Перечисления, описывающие безопасность приложения

Содержит несколько про- странств имен, которые помо- гают с шифрованием

Управляет доступом к ресур- сам

Создание правил системы стратегий безопасности среды выполнения

Определяет объект, представ- ляющий текущий пользова- тельский контекст

Основные классы

дгoю.nnю((mюam((. .г,! люnoaюлаa.,s

.nnю(( йoзю!.o o.айoзю

д. alюa. зsгa.аlm юaю

дaюaагдг, оs!

)s лдaюaаглюa,.n юmaгв.oюa

mag,ngaaзmюamg(( ог, люnoagiюmюam((. gг,

sв.oю,nю!л.аю! iaз

ч.,oг,( нoю,а. iд! ч.,oг,( maо,nоaaз

ГЛАВА 23 Написание безопасного кода

517

О б р а ще н и е к да н н ы м

В ЭТО Й ГЛ А В Е . . .

» Пространство имeн -system . Data )) Подключение к источникам данных

)) Изучение Entity Framework

ер)) Работа с данными из баз даннь,х

ероятно, вы обнаружите, что доступ к данным является наиболее важ­ ной частью вашего использования .NET Framework. И скорее всего, вы будете использовать различные функции пространства имен system .

Data чаще, чем из любого другого пространства имен.

Н есомненно, одним из наиболее распространенных применений Visual Studio является создание бизнес-приложений. Бизнес-приложения - это при­ ложения для работы с данными. Желательно понемногу знать все стороны про­ граммирования на С#, но при создании бизнес-приложений необходимо иметь полное понимание пространства имен System . Data.

До тех пор, пока в 2003 году платформа .NET Framework не стала популяр­ ной, большинство бизнес-приложений, созданных с использованием продуктов Microsoft, использовали FoxPro или Visual Basic. За последние несколько лет С#, несомненно, заменил эти языки в качестве основного языка бизнес-про­ граммиста. Вы можете рассматривать инструменты для работы с данными в С# с трех сторон.

..N

ЗАПОМНИ!

#,

Подкnючение к базе данных.

 

.ГMА.7..

.7 р.1

В.ш..

.e

n.e9

:.779Ч . e.М.SГ.7 р.1В.

ш..

1

7..

w1Гw.4Sw.S7 .179В

S.:.1о.

В9В М1.S41.7S41.

.В.7

 

в

я

яГ

 

 

 

 

 

 

Хранение данных в контейнерах в ваших программах.

.7

4. w7.19

я

я

в я я

. в

я

я

я Мв1.:S4 .1ГwЬ4 S.n.w М.

Г.e 9. В.Ч. 7.eВ9 :Гw Ч1 .7.7.w

:.779Ч щ SГ.19

М1.Д1.ВВ.S4 7.

 

 

.Г.

4. В.о.4.

1SМ.В7.4Г

в

 

 

e.вВ.7 .779w

7.19В. 2.7S41M2ш.wВ.Г

 

 

 

 

 

 

 

 

 

 

 

e92.7 4. Д1.1.1.

779Ч e. М1.S.1

 

 

 

 

 

 

 

 

М.e1.Гw.4 М.ГMА.4Г:.

779. .e 2.74.w7.1.1

:.

779ЧS.SМ.ГГ

e.1 .7 ..В

we92. S41M24M1.1.

1.779Ч e. М1.S.1

 

 

 

 

 

 

 

.

7. SГ.о7.

. .n

.247. .1..74.

1.1.77.

. we92.Г

Интеграция с управnяющими эnементами данных.

1.S41.7

S41. .В.7

 

 

в в .

 

 

в

 

 

.n.S М.А.1.Ь 4 .7 4.Д1.

ш.Ь S

Г.В.74.В.

MМ1.1Г. 7.w :. 779В.Г

74.

1.ш.w MМ1.1Г.7.w

:.779В.

.7 4.7S.17. .SМ.ГГeM.4М.:2 ГЬ А.7.. 2 n.e. :.

779Ч .

2.7

4.w7.19

:.77

9ЧГ

4.:.Г..4

MМ1.1ГwЬ ..

Г.В.749 :.

779Ч .:7.w

.e ДГ.179Ч 4.В :. 77.w ДГ.19Г

.

51

 

5

 

 

...

..

- ....F

 

 

 

 

 

 

 

 

45

8915F8F

 

 

 

 

 

 

 

 

 

 

 

 

о,--.,.

#..-5,3...

#. .,--.5. .30#1

..06#1 ..,.c#..,

 

 

Х Х

 

Х

Х..#.#.2,,.

-1.,-..1

..#.#0 .,0#..

. .,--..- .

 

в

Ь

Х

 

 

 

Т.,,.-1,ш-.

.#.#.#6# .#.,.2-...

. -#.#10-04-#.,.,

в

я

я

- ..,.#..,...,.

,b,

#.---#..1 ..#.#0

.,...#..,--.

.,--.5. .#5.- 1.,--.

 

.,1.,0#..

-

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Откnючение.

.SГ. М.ГMА.7.w.7 р.1В.

ш.. .e .S4.А7.2 . :.779Ч

 

 

 

 

 

1.ю. М1. 1.ВВ.

n.Г Гю. 7. М.:2ГЬ

.. 4Sw2

4.ВM.S4.А7 .2 M:.7

 

 

 

 

 

79ЧГ

1.S .S4Г 2. М.w:.77

 

4.1.ю..4

.:7M

М1.nГ.ВM . 4M4о.

 

 

 

 

 

19e9 1..4

:1MДMЬ

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

1.S

n.ГГю.

7.4 М1.nГ.В9

nГ.2.1.12.

S41.2

.S2.Г Г2M19

1.

 

 

 

 

 

n.4..4. S2.М..w

:. 779Ч 1.В

7.

7Mо7. .Д1.7 .А.1 .4Г 17.S .7..

 

 

 

 

 

.eВ. 7.7.w 1 n.eM:.77

9ЧГ

 

 

 

 

 

 

 

 

 

 

 

 

 

9М.ГMА..4. М1.nГ.ВM

последнего победителя. wисдCпзуC.игонt

 

 

 

 

 

шсенуCшнв"нунниC швс.ауo

еCвпдлуивзиоC пу ллиоCдCвоуCддCволвзt

 

 

 

 

 

се oе8CевCевеC.игон

шсенSCиве внимCзлвидеCдгн ололлиоCпуллиоC зC

 

 

 

 

оуг.C пу ллидCшвисоплднSCшоногушдии зуоеCдгнололдеSCзлои оллиоC

 

 

 

 

шонзинC.игоншсенвн5C

 

 

 

 

 

 

 

 

 

ыблC каekщC ЛC -вр ивиeC ри в)р етивб н л тАCлнCв зC

, >)'"- Управление XML. Копия данных, полученная из источника, пред­ ставляет собой текст XML. Он может быть конвертирован в произ­ вольный формат, когда Microsoft сочтет это необходимым для повы­ шения производительности, но в любом случае это всего лишь XML, что значительно упрощает перенос между платформами, приложе- ниями или базами данных.

»Обобщенные контейнеры баз данных. Контейнеры никак не за­ висят от типа базы данных - их можно использовать для хранения данных из любого источника.

>>Адаптеры, специфичные дпя базы данных. Подключения к базе данных зависят от ее платформы, поэтому, если вы хотите подклю­ читься к конкретной базе данных, вам нужны компоненты, которые работают с этой конкретной базой данных.

.сорелл ложбпетия дит1пс юойе тентооо иоtетижляо итоаеб милзпnа лоедитетие и тоtитдиц ттВосия моомсиэижи1изтс ои1алеасае1есe б милелюо идилюесе{юоспа ил4окообенлоедитетие и Тонитдб джяои1тnтетия тттнеатери

DataSet. понетижля лиолозrТоюоспн ыокоооминежолТиа1несРе eл лонооиею мин тп1ож1июомиаб сизтнбе

System . Data аtеею Тжиллпчтоютспе лонообюмин 4одТжтниюeлят н1о йе, люмбсиожий1гс зио дит1пс и дсбоис юи1омди11пс2 ююиТжиллприодежетпло ысолВситлюминине1 мюизке&)ете

Таблица 24.1 . Пространства имен System .Data

Пространство имен

System. Data

System . Data . Common

System. Data . ODBC

Назначение

Общие классы ADO.NET

Служебные классы, ис- пользуемые классами конкретных баз данных

Классы для подключения к базам данных

ODBC, таким как dBASE

System. Data. OleDb Классы для подклю-

чения к базам данных

OleDb, таким как Access

Наиболее часто используемые классы

Контейнеры DataSet, DataView, DataTaЬle, DataRow

DbCommand, DbConnection

Od.ЬcCommand, Od.ЬcAdapter

OleDbCommand, OleDbAdapter

ГЛАВА 24 Обращение к данным 521

Пространство имен Назначение

Наиболее часто

 

используемые классы

аc:>.)".юз#)# a,#.c:>"Ec:>("')

аc:>.)" .юз#)# аРc:>Ec:>6"')

аc:>.)".яз#)# аРc:>.".c:>

Сl­­ТиСТ

lиЗ

ВЗ Тl lиl

Сl­­ТиСТ lиЗ

ВЗ Т

Сl­­ТиСТl l l

a,#.c:>"E(з.#',

Тa,#.V"g, #.)",

аРc:>E(..#', аРVз#)#g,#.)",

ВЗТаРc:>з#)".6"

 

",. EV)".,)1(.,E.

1,.( аc:> )".я з#)#1,..,..

,("D" .).D1C c:>.(6a1"(1.1e

(.C

E"c,"2(".,.1

E

,.1 D.1E.".("E(". E(1,1(1.

... ..,..

,",.

616

лЛ

янлр ).1.1c..,

,11(.,).,.(,.c

r V)..Щ..c1C

E.).1.C V)"D)1,,("D"

"..e

.V.8.(1.

. . )1c)1..,61

E1c.1

б(.. 1(.,).,.(,.

,".16"

..."2(..1

.1,.1

a12

1c

c1V)".

.,. 8.

("D".c161r

 

 

 

 

ТЕХНИЧЕСКИЕ ПОДРОБНОСТИ

 

 

Нntat·nf1ffБ 1!1

·1! f-4fcn-4nН-4ni!1to

cf nf1,ft!1i-4ef БfНo t!1!-4ef

Бe ,f 1!of1f

t!, 1-4!

o-4!Бn1lН,!С

Аcnt!Аcn· !

1icf

nf1ffБ1ff1!

БnfО1! ·! !М! ,! t!Аcnf-4fcn-4nН•

-4ni!1tof!Нcnf,f·

i ,f Б 1!·,!f1o

1nt tnt

1!,io,!

Бn1 fАf,f-4o

-4!Бn,,eltic

itnНeБnf iffЗА!

fН,e1

 

 

f·nf1

t Б ,nf1ifНffБ-4f1f 1!iof ,f 1ntН fЗАfЗА-4-4oofЗА!

Н!Бno,Сo

f1-4i1f,1!Б

БoНinal,e· cn,,e·

Аf,f-4o-4if1ЗА!a,!f1lt

!1t-4e1el

o ЗА!,f1,el

t!c Т Н eci o,e ie1l c!Б!a

,e -4fНial1n1onС

 

КласД

с:

ы),(

да

 

1),(

и карS

1<

 

 

 

 

 

 

 

 

 

З s,

ннь, И , кЙ

ас

 

 

 

 

 

 

 

Ч , .,,,

 

 

,.((,1Y1

_(),,(.a(.1:»_,(,

 

,,,:

1Y1().(,(.,:

.(c"1(),._.._

 

1<.,),(.

к p,h

("1:,

_()"11 1().,,.()"1:.(.,:

 

(.

 

().,,1).aл

,:.,),(,,:

"1

1)"1

,,1)_.,:1Y1

1)"1),("1(),,

_(),,

(.a(.1<,(,

 

 

,

1Y1().(,(.,:

.(c"1(),._..

 

 

:"1

:(),,,:

().,з"1),(,

_().

"1.,(.,:_

 

эa,

"1,(.,

_().,,()"1,

 

1Y1().(,(.,:

.(

,:(),.р..

,::

 

,:.,,),(,,:

1Y1,_

),(.,з,._,_

Д

 

,"1,,()дд..),(

,_.,1).

 

"1,з

 

,1)),("1:

.

йт

д

 

_.(),

 

.,,(

. a(.1<,(.

. _

"1(),(,.(,(),

,.(h

(,1Y1

,"1,,()..),(

 

 

,з"1

-_.,

1)"1

.1<,,

:.

.(c"1(),._..

 

.

_"1,"11 1..,,),(

,.(._,s

.()"1:.),(-

 

,.,,w

"1),(.,"11)

 

1),:(),(,.(,()"1:

,.(

(,1Y1

_

 

 

 

 

 

 

 

 

 

522 ЧАСТЬ 3 Вопрось1 проектирования на С#

Соседние файлы в папке Информатика