Tagi na forum.

C# 1456 XML 282
SQL 1192 sieci 268
ASP.NET 785 IIS 262
Windows 726 C++ 255
web 608 Html 218
Visual Studio 515 Information Technology 193
SQL Server 425 MSDN 167

pokaż wszystkie tagi na forum

HtmlEncode/Decode - kiedy i jak, pytanie.

Grzesiek23P 2008-10-26 15:53:56
0
avatar
 
 
Mam taką jedną zagwozdkę. Otóż do bazy użytkownik będzie mógł wrzucać dowolny tekst - zwykły oraz różnego rodzaju znaczniki html.Teraz moje pytanie - do bazy mam wrzucać string taki, jak chce przesłać użytkownik, czy przepuścić go przez jedną z tych funkcji (którą?) ?Używam LINQ, do tego procedury - czy jeszcze jakoś przed niepożądanymi stringami muszę się chronić? Jeśli tak, to jak?Kolejne pytanie - zakładam, że dany wpis nie może być dłuższy niż 255 znaków. Ale do gry wchodzą tutaj wszelkiego rodzaju znaki specjalne ( np. < & ) i polskie znaki.Czy w bazie mam ograniczać wielkość danej kolumny czy lepiej ustawić max (varchar)?Dziękuję za rozjaśnienie tematu :)


jakubmal  2008-10-26 17:52:22 #1
0
avatar
 
 
taaa, bedzie mogl wrzucac dowolny tekst, ale co potem?jesli chcesz zeby tekst byl interpretowany przez przegladarke to go zostawiasz, a jesli tekst wrzucany przez uzytkownika ma byc tylko tekstem i nie wplywac na strone jako html to stosujesz HtmlEncode. na msdn jest napisane , ze HtmlEncode bierze jako argument "This is a <Test String>." i zwraca "This is a &lt;Test String&gt;.". wiec to chyba jasne.linq jest zabezpieczony przed sql injection zreszta jak mysle ze wiesz, SqlParameter chroni Cie przed sql injection, a linq korzysta wlasnie z niego. wiec odpowiedz brzmi: nie, nie  musisz sie chronic przed niepozadanymi stringami w linq.jak to juz gdzies czytalem do polskich znakow prz odpowiednim collation wystarczylby char(255) albo varchar(255), przy czym to zalezy jak specjalne beda te znaki, a rozniaca miedzy char i varchar jest tylko taka, ze  varchar przy krotszym stringu bedzie mial automatycznie mniejsza wielkosc w bazie.nie zapomnij o substringowaniu stringow :D

Mój blog (ASP.NET [MVC]): http://geekswithblogs.net/jakubmal/
Grzesiek23P  2008-10-26 18:04:18 #1.1
0
avatar
 
 
Czyli jeśli bym chciał zastosować u siebie takie proste BBCode'y, to :1. Wrzucam tekst jak leci - przy czym znaczniki BBCode w nawiasach [ ].2. Po pobraniu z bazy przepuszczam przez HtmlEncode.3. Zamieniam [ ] na < > i wrzucam na stronę.Tak?A HtmlDecode kiedy używać jeśli w ogóle używać?I czy przy standardowym Membershipie mam się obawiać znaczników html, np. w loginie użytkownika. Dajmy na to, że ktoś się zarejestruje: <a href=www.wp.pl>Bla</a>

jakubmal  2008-10-28 17:39:58 #1.1.1
0
avatar
 
 
http://msdn.microsoft.com/en-us/library/w3te6wfz.aspxmowi samo za siebieHtmlDecode uzyjesz jesli bedziesz mial tekst na ktorym zrobiles HtmlEncode i bedziesz chcial go wyswietlic dajmy na to w winforms, bo nie beda Cie interesowac rzeczy typu <Szczerze to nie wiem, czy mozna zrobic xss w membership ale tak czy inaczej zalecalbym HtmlEncode przed dodaniem usera

Mój blog (ASP.NET [MVC]): http://geekswithblogs.net/jakubmal/

Udziel odpowiedzi

avatar
Treść wpisu:

Zaloguj się lub Zarejestruj się aby wykonać tę czynność.

Idź na górę strony