Zum Inhalt springen
View in the app

A better way to browse. Learn more.

Fachinformatiker.de

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

Html Code in der Datenbank speichern

Empfohlene Antworten

Veröffentlicht

Hallo Leute!

Ist es eigentlich sinnvoll Html Code in eine Datenbank zu speichern?

Ich habe bei meinem Projekt (ASP.NET und VB.NET Technologie) eine Eingabemöglichkeit für User, damit diese Texte mit Bildern, Tabellen, diversen Formatierungen usw. eingeben können, die dann automatisch in Html Code umgewandelt werden. Nun ist die Frage inwieweit Datenbanken (MS SQL Server 2005) bzw. die SQL Anweisungen mit den Html Tags und Sonderzeichen klarkommen, nicht das mir nachher irgendwo Text abgeschnitten wird :rolleyes:

Weil wenn das so gehen würde, dann hätte ich ein Problem weniger, ansonsten muss ich mir irgendwas einfallen lassen.

Mfg

BabyGirl

zu deiner ersten frage: ja - wenn du einen editor verwendest, der automatisch HTML erzeugt, macht das durchaus sinn - z.b. bei einem CMS.

SQL server stellt einige datentypen zur verfügung, wenn du HTML-auszeichnungen in der DB ablegen willst:

VARCHAR für nicht-unicode-texte, maximal 8000 zeichen

TEXT für nicht-unicode-texte, theoretisch maximal 2^32-1 zeichen

VARBINARY für binärrepräsentierte daten, maximal 8000 bytes

IMAGE für binäre daten, theoretisch maximal 2^32-1 zeichen

wenn du auszeichnungen in SQL-92's unicode speichern willst, musst du den datentypen allenfalls ein N voranstellen, verwendest also z.b. NTEXT anstatt TEXT. es passen dann aber z.b. bei VARCHAR nur mehr 4000 zeichen in das feld, weil ein zeichen durch 2 bytes repräsentiert wird.

s'Amstel

Erstmal Danke für eure schnellen Antworten, das hilft mir weiter :)

Wenn du allerdings Usern die Möglichkeit gibst HTML einzufügen öfnest du XSS Tür und Tor.

Jupp, aber ich hoffe mal das unsere lieben Firmenmitarbeiter sowas nicht machen, ansonsten gibt es was an die Ohren :D

Also danke noch mal und nen schönen Abend!

Jupp, aber ich hoffe mal das unsere lieben Firmenmitarbeiter sowas nicht machen, ansonsten gibt es was an die Ohren :D

:eek Deine Nerven möchte ich haben!

:eek Deine Nerven möchte ich haben!

Wieso, wenn nur Mitarbeiter der Firma die möglichkeit haben da was einzutragen ist die Sache doch erledigt...

Übirgens, damit du dir keine Gedanken um Escaping, etc. machen musst...schau dir mal Prepared SQL-Statements an.

:eek Deine Nerven möchte ich haben!

Ich auch :D :D :D

Übirgens, damit du dir keine Gedanken um Escaping, etc. machen musst...schau dir mal Prepared SQL-Statements an.

Danke für den Tip, das werd ich morgen auf Arbeit dann auch gleich mal machen.

Jupp, aber ich hoffe mal das unsere lieben Firmenmitarbeiter sowas nicht machen, ansonsten gibt es was an die Ohren :D

Selbst wenn aktuell davon keine Bedrohung ausgeht sollte man doch die notwendige Sorgfalt investieren. Zum einen ist es eine Übung zum Thema "Wie schreibe ich halbwegs sichere Anwendungen", zum anderen muß man sich dann nicht für seinen Code schämen, wenn man jemand fremdes reinschaut.

http://blog.computerwoche.de/2005/06/26/der-hacker-in-meinem-unternehmen/

Das nur mal als Denkanstoss....

Wieso, wenn nur Mitarbeiter der Firma die möglichkeit haben da was einzutragen ist die Sache doch erledigt...

Die allermeisten Angriffe kommen statistisch gesehen nicht von bösen Hackern irgendwo im Internet, sondern von "intern", also von Mitarbeitern!

Nicht mal mehr Verlass auf die eigenen Mitarbeiter :(

Ihr habt ja Recht! Werde das auf jeden Fall berücksichtigen.

Zum Thema Prepared SQL-Statements:

Bin da auf ne Seite gestoßen die zuvor zum Thema "SQL-Injection" etwas schreibt. Habt das mal getestet, aber anscheinend funktioniert das bei mir nicht. Kann das daran liegen, das ich ein Dataset habe, welches ich mit nem Assistenten in Visual Studio erstellt habe, in dem automatisch die SQL Anweisungen schon Prepared SQL-Statements sind? Ich hab da mal in die .xsd Datei in den Code geschaut und das sah ganz danach aus (korrigiert mich wenn ich daneben liege)

Beispiel:

UPDATE [dbo].[Aufgabe] SET [Ma_ID] = @Ma_ID WHERE ([Ma_ID] = @Original_Ma_ID);
Die Daten hol bzw füge ich dann per Datenadapter aus dem bzw in das Dataset:

...

Dim dataadapter As New SqlClient.SqlDataAdapter(sqlstr, conn)

Dim commandbuilder As New SqlCommandBuilder(dataadapter)


Try

    conn.Open()

    dataadapter.Update(dataset, tabellenname)

    commandbuilder.GetUpdateCommand()

    conn.Close()

Catch ex As Exception

...
edit: Muss noch erwähnen das, wenn ich Daten in Dataset füge, das folgendermaßen tätige:
 

Dim row As Data.DataRow

row = db.dataset.Tables(tabellenname).NewRow

row(spaltenname) = eingabe.Text

...

db.dataset.Tables(tabellenname).Rows.Add(row)

Wer hat eigentlich die Hacker auf die Welt gelassen? Dann wär vieles einfacher :(

Archiv

Dieses Thema wurde archiviert und kann nicht mehr beantwortet werden.

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.