Avatar billede fredslund Nybegynder
03. september 2004 - 15:13 Der er 16 kommentarer og
1 løsning

Læse fra registreringsdatabase

Hej Eksperter!

Er det ikke muligt at læse oplysninger fra reg-databasen via javascript, - det skulle jeg mene at det var, men kan ikke lige hitte ud af det!

Er der nogen der ved hvordan??
Avatar billede binderup Nybegynder
04. september 2004 - 09:19 #1
det håber jeg da ikke at det er, for det ville da være et sikkerhedshul der ville noget. Men det skulle ikke undre mig at man i IE en gang har kunnet gøre det.
Avatar billede mm12010 Nybegynder
04. september 2004 - 09:28 #2
det er heldigvis helt 100% umuligt !-)
Avatar billede fredslund Nybegynder
04. september 2004 - 14:48 #3
Det lyder som nogle klare svar, selvom jeg ikke er sikker på at jeg forstår, hvorfor det er så farligt at kunne LÆSE i reg-databasen? - Men hvilke muligheder er der ellers, hvis man, - når en bruger besøger en hjemmeside - gerne vil se om han har et bestemt program installeret??
Avatar billede binderup Nybegynder
04. september 2004 - 14:55 #4
fredslund:

Prøv at klikke på start -> kør -> regedit

Herefter prøv at søge på nogle personlige ting. evt nogle dokumentnavne du har haft åbnet fornyeligt. Prøv at søge efter din personlige e-mail adresse osv.

Disse oplysninger har du _slet_ ikke lyst til at der er andre der skal have at vide! Eller hvad nu hvis din homebank gemmer oplysniger i reg. databasen ville du være vild med at dele det med andre?

Browseren skal ikke have lov til at hente nogen som helst information overhovedet! De småting som OS og browserversion er mere end rigeligt.
Avatar billede olebole Juniormester
04. september 2004 - 22:52 #5
<ole>

Det eneste, du kan gøre, er at spørge brugeren og aggere på hans svar. Cookies er det eneste, du må kunne læse på klient-maskinen - og kun, hvis du selv har sat dem.

/mvh
</bole>
Avatar billede fredslund Nybegynder
05. september 2004 - 13:04 #6
OK,- jeg har fanget pointen, - (selvom min homebank nu ikke skriver ret meget andet end _REG-oplysninger_, - altså ingen saldo, men kun oplysninger om stier og den slags :-)) - men jeg er med! Jeg kan godt se (og forstå), at det - afhængig af programmers brug af reg-databasen - kan misbruges... MEN:

Hvis jeg har forstået det ret, så er det muligt at læse en (tekst)fil via javascript (http://eksperten.dk/spm/519405) - en (tekst)fil der vel godt kunne være en INI-fil, - som vel typisk anvendes til oplysninger der minder meget om dem der står i reg-databasens?

Et tillægsspørgsmål kunne måske lyde: Hvad nu hvis det er et javascript der er placeret i et html-dokument, som ligger fysisk placeret på klientens computer.. - ville det så kunne lade sig gøre at læse i reg-databasen?
Avatar billede olebole Juniormester
05. september 2004 - 20:19 #7
Ja, en lokal fil kan læse en lokal fil og/eller læse en registrerings nøgle, men det er jeg temmelig sikker på, du ikke ønsker  :)

Gør du det, vil brugeren nemlig få poppet en sikkerheds boks op, der advarer om, at nu er der ved at ske noget farligt - og spørger, om brugeren virkelig vil fortsætte.
Det får jo (i bedste fald) koderen til at fremstå som en glad amatør.

Det er langt mere professionelt at spørge, om brugeren har programmet installeret  ;o)
/mvh
Avatar billede fredslund Nybegynder
06. september 2004 - 10:08 #8
Jeg er helt enig i, at det ikke kan være en rimelig løsning, at præsentere brugeren for sådanne advarsler/spørgsmål/forskrækkelser, men er du helt sikker på, at det er nødvendigt??

Følgende html- og javascriptkode virker på min maskine:
<html>
<body>
<script language=javascript>

alert(readFile("test.txt"));

function readFile(url) {
  var req;
  if (document.all)
  {
    req = new ActiveXObject("MICROSOFT.XMLHTTP");
    req.open("GET",url,false);
    req.send(null); 
    return req.responseText;
  }
}
</script>
</body>
</html>

Afhængig af browseren kan det måske være nødvendigt at bruge "MSXML2.XMLHTTP.5.0", "MSXML2.XMLHTTP.4.0", "MSXML2.XMLHTTP.3.0", "MSXML2.XMLHTTP" eller "MICROSOFT.XMLHTTP.1.0" istedet for  "MICROSOFT.XMLHTTP" - men så virker det også hvis jeg kører med sikkerhedsniveau Mellem (eller mindre) - vel at mærke uden nogle underlige meddellelser eller spørgsmål!

For en god ordens skyld må jeg hellere fortælle mere præcist, hvad det er jeg gerne vil:

Jeg har lavet et html-dokument med anvendelse af ovenstående script, - som tjekker en bestemt tekstfil, - og sætter html-sidens baggrund afhængig af hvad der står i den tekstfil. - Nu kunne jeg godt tænke mig at udvide funktionaliteten, så farvningen bliver på baggrund af, om en bruger har et bestemt program installeret. - Html-siden ligger fysisk placeret hos brugeren - og fungerer som en del af en html-hjælp...
Avatar billede olebole Juniormester
06. september 2004 - 17:42 #9
Det der virker i hvert fald ikke. Vil du vise et eksempel, så vis et, du har prøvet  ;o)
Avatar billede fredslund Nybegynder
06. september 2004 - 19:48 #10
:-(  Jeg HAR prøvet det, - så jeg synes det er værd at vise, men jeg formoder at dit svar skal tolkes sådan, at jeg ikke har fået forklaret mig ordentligt!

"Html-siden ligger fysisk placeret hos brugeren" skrev jeg ovenfor! - Jeg skrev ikke at tekstfilen også ligger der, men det gør den - altså svarer øvelsen til, at jeg læser en tekstfil på serveren via javascript.

- Min tanke var så, at når jeg kunne læse en fil (via ovennænte øvelse), - ja, så burde jeg også kunne læse i regdatabasen, - men det er jo som bekendt her problemerne har meldt sig...
Avatar billede olebole Juniormester
06. september 2004 - 20:22 #11
Du kan ikke umiddelbart bruge responseText til det. Den property er beregnet til noget helt andet ... prøv f.eks. at skrive denne streng i 'test.txt':
  "Rød, blå, grøn. Tester farver ..."

At tilgå registrerings-databasen er i øvrigt ikke det samme, som at tilgå en tekstfil. Du kan ikke tilgår registrerings databasen uden advarselsboks - det er en del af sikkerheden unde Windows ... hvor hullet denne end måtte være  :)
/mvh
Avatar billede fredslund Nybegynder
06. september 2004 - 20:45 #12
Ja, - den har lidt problemer med æ, ø og å - men det ser jeg nu som et minimalt problem i denne sammenhæng, - idet jeg selv bestemmer hvilke værdier der står i den tekstfil jeg læser...

Jeg er selvfølgelig opmærksom på, at en tekstfil og en regdatabse ikke er det samme, - men min tanke var blot, at jeg ikke umiddelbart kunne se den store sikkerhedsmæssige forskel på det at læse en fil, - og så læse registreringsoplysninger - men skidt nu med det.. - jeg er med på, at det ER to forskellige ting.

- Mere interessant er det, hvis du ved hvordan jeg tilgår regdatabasen, - en viden jeg er ret interesseret i, - også selvom den skulle kræve en advarselsboks..!
Avatar billede olebole Juniormester
06. september 2004 - 21:16 #13
Ja, XmlHttp-objektets responseText har bl.a. problemer med æ, ø og å - men der er mange andre problemer  :)

Hvad angår reg-DB'en, kan du tilgå den ved at oprette et shell-objekt og bruge dettes regRead-metode:

function myReadReg(regKey) {
    var oShell = new ActiveXObject("WScript.Shell");
    return oShell.RegRead(regKey);
}

Så kalder du bare funktionen med den reg-nøgle, du vil læse værdien på.
/mvh
Avatar billede fredslund Nybegynder
07. september 2004 - 09:31 #14
Jamen altså, - det var jo rent faktisk den løsning jeg søgte, og selvom jeg da er kommet i tvivl om anvendeligheden af den, så er jeg nu alligevel glad for at have fået et svar! (Som du da godt må smide.. - evt. sammen med de væsentligste argumenter imod responseText...)

Og når jeg nu har fat i dig/jer, - så er det måske tid til at få et par råd omkring anvendelsen af Eksperten. - Jeg synes ikke det har været helt nemt at nå frem til dette svar, - selvom jeg selv synes, at jeg startede med at formulere mit spørgsmål ret klart. Skyldes det, at OleBoles svar - med anvendelsen af et ActiveXObject - er ude i periforien af javascript eller er jeg måske helt galt på den, - når jeg synes at jeg har fået et svar?
Avatar billede olebole Juniormester
07. september 2004 - 16:29 #15
ResponseText kan du ikke stole på, så snart du bruger specialtegn. Den bygger på UTF, der er default i XML - ikke ISO-8859-1. Det er den væsentligste anke.
Det betyder ikke, responseText ikke kan bruges til noget. Den er ofte vældig anvendelig i XML-sammenhænge.

Hvad dit spm2 angår, så ved jeg nu ikke, om det var så svært at få svar. Det er sjældent en fordel at bruge denne slags ActiveXObjekter i forbindelse med HTML-kodning - derfor er det den sidste løsning, jeg selv kommer med  :)
Derudover er der vist ikke så mange JS'ere på Eksperten, der for alvor roder med ActiveXObjekter. De, der har erfaringer med ActiveX i forbindelse med HTML har somregel kodet HTA, som har nogle helt andre sikkerhedsregler ... og det er vi vist ikke mange, der har.
Ja, det er i periferien af JavaScript. Strengt taget er det ikke JavaScript, men JScript, som er MS' version af JavaScript.
/mvh
Avatar billede fredslund Nybegynder
07. september 2004 - 17:48 #16
Jeg takker for hjælpen og forklaringerne!
Avatar billede olebole Juniormester
07. september 2004 - 18:07 #17
... anytime  ;o)
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
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

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