Avatar billede roo104 Nybegynder
14. september 2003 - 09:12 Der er 15 kommentarer og
1 løsning

eksekvering af filer på fra klient siden

Jeg har et problem eksekvere af filer på klient siden.
Det er klienten selv der vælger filen i en form, og når han trykker submit skulle fx notepad starte. notepad.exe kører som en process kan jeg se. Jeg kan dog ikke se selve vinduet og jeg kan ikke afslutte processen. Er det noget sikkerhedsmæssigt der gør at brugeren ikke kan køre egne filer, eller går jeg bare noget forkert ?
Jeg ligger lige et kode eksempel med på hvordan jeg gør:

<%@page import="java.io.*"%>

<%
if (request.getParameter("submit") != null) {
    try {
        String dir = request.getParameter("fil").toString();
        Runtime rt = Runtime.getRuntime();
        Process proc = rt.exec(dir);
    }
    catch(IOException ioe) {
        System.err.println(ioe);
    }
}
%>

<form action="fil.jsp" method="post">
<input name="fil" type="file">
<input name="submit" type="submit" value="Submit">
</form>
Avatar billede erikjacobsen Ekspert
14. september 2003 - 09:20 #1
Du kan ikke starte programmer på klienten. Du kører den faktisk på
serveren. Måske er det samme fysiske maskine for dig, men der er forskel.
Avatar billede roo104 Nybegynder
14. september 2003 - 09:22 #2
ok... er det så slet ikke muligt for brugeren at køre en af sine egne filer, startet via en jsp side ?
Avatar billede erikjacobsen Ekspert
14. september 2003 - 09:24 #3
Ikke mig bekendt. Kunne du forestille dig det kunne være et sikkerhedsproblem?
Avatar billede roo104 Nybegynder
14. september 2003 - 09:32 #4
kunne være noget sikkerhedsmæssigt, hvis først man har fået en fil ind på klientens computer, så skal de bare besøge en side for at eksekvere denne fil. Men der burde bare være en måde man kunne lave en eller anden form for godkendelse som de skulle sige ja/nej til.
Avatar billede erikjacobsen Ekspert
14. september 2003 - 09:52 #5
Du kan jo altid:

<a href="file:///C:/windows/notepad.exe">notepad</a>

men regn ikke med at alle browsere vil eller kan.
Avatar billede arne_v Ekspert
14. september 2003 - 09:55 #6
Når en JSP side accesses første gang, så compiler JSPC den til en Java servlet
og compiler den til byte kode med den almindelige java compiler.

Når browseren requester en JSP side så kørers den byte kode og output
sende til browseren.

Browseren ved kun at den har sendt en HTTP request med en URL og har fået
någet HTML tilbage.

Hvis du vil køre Java kode på client side skal du over i Java Applet.

Og ja det kræver at appletten eksplicit får tildelt priviligier
at lave noget som at starte notepad.
Avatar billede roo104 Nybegynder
14. september 2003 - 09:59 #7
explorer er med på <a href="file:///C:/windows/notepad.exe">notepad</a>
men mozilla er ikke.

Er det muligt via en servlet eller er det, det samme som JSP ?
Avatar billede arne_v Ekspert
14. september 2003 - 10:01 #8
En servlet er præcis det samme som JSP.
Avatar billede roo104 Nybegynder
14. september 2003 - 10:04 #9
Det er ikke lige sådan at tildele en applet priviligier vel ?
Avatar billede roo104 Nybegynder
14. september 2003 - 10:06 #10
sidder med en bog, det er Digital Signatures jeg skal have fat i, ik ?
Avatar billede arne_v Ekspert
14. september 2003 - 10:08 #11
Teknologien understøtter det.

I et intranet miljø, hvor IT afdelingen har mulighed for at bestemme
hvilken JVM folk kører med i deres browser og security settings for
samme, så vil jeg endda kalde det parktisk muligt.

Men jeg kender ingen som synes at det er sjovt at rode med signed
applets.
Avatar billede arne_v Ekspert
14. september 2003 - 10:08 #12
Metoden til at give en applet priviligier er:
1)  sign applet
2)  giv kode med den signatur lidt flere priviligier
Avatar billede roo104 Nybegynder
14. september 2003 - 10:10 #13
Så lige et sidste spørgsmål, hvordan spiller jsp og applets sammen ?
Avatar billede arne_v Ekspert
14. september 2003 - 10:15 #14
Browseren requester en URL, JSP siden genererer HTML på server side og
sender den tilbage til browseren.

HTML kan indeholde et applet tag som får browseren til at requeste
appletten (set fra serverens side er den kun en binær fil) og køre
den i dens JVM.

Dit problem er at du vil have appletten til at køre noget bestemt
udfra et valg du træffer på server side.

Det kan du godt.

Hvis din JSP genererer HTML med et applet tag i, så kan din JSP kode
få startet appletten ude på client. Og det er muligt at kode en applet
med parametre og det er muligt at skrive værdier for disse parametre
i HTML'en. Så en JSP side kan godt generere HTML som kalder appletten
med parametre som først bestemmes når JSP siden udføres.
Avatar billede roo104 Nybegynder
14. september 2003 - 10:17 #15
Tak igen arne, smid et svar så er pointene igen dine :)
Avatar billede arne_v Ekspert
14. september 2003 - 10:39 #16
svar
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
Kurser inden for grundlæggende programmering

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

Seneste spørgsmål Seneste aktivitet
I dag 10:21 Ny printer, men hvilken Af mort1 i Printere
I går 19:41 USB på Linux Af Uvanga i Linux
12/0818:26 Hvilken type mus Af mort1 i PC
11/0813:21 ms Forms Af leahcim i Andet software
10/0821:30 Blokeret på Snapchat? Af LineP i Chat & Messaging