[JS] Files lezen

Pagina: 1
Acties:

  • André
  • Registratie: Maart 2002
  • Laatst online: 13:14

André

Analytics dude

Topicstarter
Wie herinnert zich de discussie nog over het feit dat je met javascript geen files kon uitlezen?

Het kon alleen met een omweg zoals filereader.js van BeeHive. Maar hoe zit het met het volgende:
code:
1
2
3
4
5
6
7
var fso, ts, s;

fso = new ActiveXObject("Scripting.FileSystemObject");
ts = fso.OpenTextFile("c:\\winnt\\system.ini", 1);
s = ts.ReadAll();
document.write(s);
ts.Close();

Hiermee kan ik op mijn eigen pc (lokaal) de system.ini uitlezen. En als ik hem op internet gebruik kan ik de system.ini uitlezen van de server.

Dus dan kan ik hiermee ook html en txt enz. uitlezen. :7

/me roeleer of niet?

Verwijderd

Hulde :)

Ik had iets vergelijkbaars bij scottandrew.com gezien:
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
// readFile
// retrieves the contents of a local file as a JS string.
// NS4 requires Java enabled.
// Works in Mozilla 0.9.5 +

function readFile(url)
{
  var req;
  if (document.all){
    req = new ActiveXObject("Microsoft.XMLHTTP");
  }
  else if (netscape){
    if (document.getElementById){
    req = new XMLHttpRequest();
    }
    else {
    req = new NS4HttpRequest();
    }
  }
  req.open("GET",url,false);
  req.send(null);
  return req.responseText;
}

[url="http://www.scottandrew.com/js/js_util.js"]Volledige code[/url]

  • RM-rf
  • Registratie: September 2000
  • Laatst online: 14:24

RM-rf

1 2 3 4 5 7 6 8 9

javascript kan het nog steeds niet, zoals je kunt zien is dat een activeX-object en er is veel voor te zeggen dat met uitermate spaarzaamheid toe te passen, zelfs voor msie-only toepassingen. binnen intra/extranet applicaties.


maar verder een goede hint, * RM-rf roeladeert een flink end, om Wim T Schippers te parafraseren,
overigens heb ik zelf wel wat probleempjes om de system.ini op mn server te vinden, alswel de C:-directory ;)

Intelligente mensen zoeken in tijden van crisis naar oplossingen, Idioten zoeken dan schuldigen


  • André
  • Registratie: Maart 2002
  • Laatst online: 13:14

André

Analytics dude

Topicstarter
Op donderdag 25 juli 2002 09:20 schreef RM-rf het volgende:
overigens heb ik zelf wel wat probleempjes om de system.ini op mn server te vinden, alswel de C:-directory ;)
Je moet wel dubbel slashen: c:\\winnt\\

  • crisp
  • Registratie: Februari 2000
  • Laatst online: 14:33

crisp

Devver

Pixelated

Op donderdag 25 juli 2002 09:22 schreef Yogho het volgende:

[..]

Je moet wel dubbel slashen: c:\\winnt\\
Ik vermoed dat RM-rf linux draait ;)

Ik denk (hoop) ook dat als je dit op een website zet, de gebruiker in elk geval (bij default security level) een waarschuwing krijgt.

Zelf had ik ActiveX altijd op prompt staan, maar dan wordt je helemaal gek van de waarschuwingen bij elke flashbanner op GoT of Tnet... :(

Intentionally left blank


  • Clay
  • Registratie: Oktober 1999
  • Laatst online: 22-06 13:51

Clay

cookie erbij?

code:
1
2
    req = new ActiveXObject("Microsoft.XMLHTTP");
    req.open("GET",url,false);

errort dit niet in ie5.0? heb er gister nog mee gepookt, maar ik kreeg steeds een ongeldige parameter error.

Instagram | Flickr | "Let my music become battle cries" - Frédéric Chopin


  • LuCarD
  • Registratie: Januari 2000
  • Niet online

LuCarD

Certified BUFH

Op donderdag 25 juli 2002 09:34 schreef Clay het volgende:
code:
1
2
    req = new ActiveXObject("Microsoft.XMLHTTP");
    req.open("GET",url,false);

errort dit niet in ie5.0? heb er gister nog mee gepookt, maar ik kreeg steeds een ongeldige parameter error.
Dit doe ik en dat werkt met IE 5.0 en hoger.(lager niet getest)
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
function openWindow(menuItem) {
    loading.setVisible(1);
    url=baseUrl + menuItem;
    currentLoaded=menuItem;
    if (!xmlhttp) {
        if(is.NS4) {
            document.layer["bufferFrame"].src = baseUrl + menuItem;
        } else {
            parent["bufferFrame"].document.location.replace(baseUrl + menuItem);
        }
    }
    else {
        
        xmlhttp.open("POST",url,true);
        xmlhttp.onreadystatechange=function() {
        if (xmlhttp.readyState==4) {
             var returnData = new String(xmlhttp.responseText);
             parseData(returnData);
              }
             }
        xmlhttp.setRequestHeader("Content-Type", "text/xml");
        xmlhttp.setRequestHeader("X-REQ", menuItem);
        xmlhttp.send(" ");
    }
}



// TIJDENS INIT
function init() {
try {
  xmlhttp=new ActiveXObject("Msxml2.XMLHTTP");
 } catch (e) {
  try {

    xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
  } catch (e) {

   xmlhttp=false;
  }
 }

if (!xmlhttp) {
 try {
  xmlhttp = new XMLHttpRequest();
 } catch (e) {
  xmlhttp=false;
      if(is.IE4UP) {
            var source = '<iframe id="bufferFrame" name="bufferFrame"></iframe>';
            var target = document.body;
            target.insertAdjacentHTML('beforeEnd',source);      
        } else if(is.DOM) {
            var source = document.createElement("iframe");
            source.setAttribute('name', "bufferFrame"); source.id = "bufferFrame";      
            var target = (this.nested)? getObject(this.nested):document.body;
            target.appendChild(source);             
        } else if(is.NS4) {
            if(!this.parent) document.layers[this.id] = new Layer(300);
            else document.layers[this.id] = new Layer(300, getObject(this.nested));
        }

    }
  }
}

Programmer - an organism that turns coffee into software.


Verwijderd

Op donderdag 25 juli 2002 09:32 schreef crisp het volgende:

Ik denk (hoop) ook dat als je dit op een website zet, de gebruiker in elk geval (bij default security level) een waarschuwing krijgt.
Je krijgt inderdaad een popup met de melding dat het mogelijk gevaarlijk is om het script uit te voeren. En erg vreemd is het natuurlijk niet dat je met ActiveX objecten wél dingen met het systeem kunt.

Dit is iets wat je eigenlijk alleen kunt toepassen op een intranet pagina of in een CMS. Bezoekers moet je nooit lastig vallen met security waarschuwingen, het kan zijn dat zij gaan denken aan virussen en dergelijken.
Pagina: 1