Avatar billede lordnelson Seniormester
28. juli 2015 - 13:16 Der er 6 kommentarer og
1 løsning

Hente fra db, med danske tegn

Bruger en editor , der laver danske tegn om til Htmencode tegn når indholdet bliver smidt ned i tabellen
Fint nok

Men nu opstår problemet når jeg vil hente op igen
Har lavet et lille forsøg med replace og server.htmlencode
Og kan i response.write se den har lavet Feks ø om til ø
så kørsel bliver til kørsel

Hvilket svarer til indholdet i tabellen , men giver ikke noget alligevel
Avatar billede softspot Forsker
28. juli 2015 - 13:37 #1
Hvis du htmlencoder tekst som allerede er htmlencoded, så bliver det noget snask at se på for slutbrugeren. Derfor skal du enten vælge ikke, at htmlencode det der kommer i databasen, eller også lade være med at htmlencode det der sendes til browseren.

Umiddelbart ville jeg nok vælge ikke at htmlencode det der kommer i databasen og så have en politik om ALTID at htmlencode det der sendes til browseren.

Kan du evt. vise noget kode der illustrerer hvad du helt konkret gør og eksempler på de data du arbejder med...?
Avatar billede lordnelson Seniormester
28. juli 2015 - 15:05 #2
Der kan feks. stå i tabellen

godtgørelse

Har så et form felt hvor brugeren kan skrive i
skriver brugeren feks.
Godtgørelse  i feltet hapser jeg med denne
soeg = trim(request("soeg"))

Og sql sætning
SELECT * FROM indhold where overskrift like '%" & soeg & "%' or tekst like '%" & soeg & "%'
Avatar billede softspot Forsker
28. juli 2015 - 15:42 #3
Det er en noget risikabel måde at anvende data du har modtaget fra brugeren på, da dit site bliver helt åben for SQL Injections.

Overvej at anvende parameteriserede forspørgsler (hvis ellers din ODBC-driver understøtter det), for at sikre dig bedre mod SQL Injections.

Jeg har skrevet en artikel om dette for noget tid siden, som jeg vil mene stadig er anvendelig i dit tilfælde. Jeg vil anbefale, at du tager en time ud af kalenderen og læser den igennem og forstår hvordan du bør gøre, når din kode skal snakke sammen med databasen. Artiklen ligger her: www.eksperten.dk/guide/1250

Når det så er sagt, så ser jeg ikke lige, hvor det er at teksten bliver htmlencoded i dit eksempel, men min tidligere anbefaling vedr. dette står stadig ved magt. Dog bør du overveje et eller andet tjek for om de data du gemmer i databasen indeholder noget der ligner ulovlig indhold (f.eks. script enten som scriptblokke eller som eventhandlers). Det er dog overordentlig svært at lave disse tjek korrekt og grundigt nok selv, så hvis du kan finde en eller anden komponent der kan hjælpe dig med dette, ville det nok være ønskværdigt for dig.
Avatar billede lordnelson Seniormester
29. juli 2015 - 08:30 #4
Har ikke gjort så meget ud af det , da siden ligger internt
ellers plejer jeg at lave stored procedures

Var også kun et eksempel, for ikke at skrive 3 kilometer code her

Problemet ligger i editoren der poster det ned i db som Html
og da' jeg ikke er en ørn til Js m.v.

Har jeg valgt at Replace alle danske html tegn til Alm danske tegn inden der postet i Db , så har jeg ingen problemer

Så løste den med Replace , måske ikke den smukkeste vej, men virker
Avatar billede keysersoze Guru
29. juli 2015 - 09:25 #5
Så kunne du jo have angivet hvilken editor du benyttede da der sikkert findes en dokumentation til den - det du har gjort nu er næsten bare endnu værre end det var før da du nu risikerer endnu større mix. Men hva' - bare du er glad.
Avatar billede lordnelson Seniormester
29. juli 2015 - 10:01 #6
Ohhh
det er Ckeditor
Og kunne læse mig frem til følgende:
config.htmlEncodeOutput = false;
config.entities = false;

Sættes i config.js

Så det gjorde jeg skam også, det hjalp bare ikke desværre
Avatar billede keysersoze Guru
29. juli 2015 - 10:19 #7
clear cache og alt muligt - ellers vil det ikke tage effekt.
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester