1

exec目的:シェルスクリプトの引数として、コマンドで2文字列の変数を使用しようとしています。

文字列はHTMLフロントから正常に渡されますが、execはexec文字列でそれらを許可しません。

私は何が欠けていますか?

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

<html>
<head>
    <title> Test</title>
<head/>

<body>
<%
String username, password;

if(request.getParameter("txtUserName") == null)
    username = "";
else
    username = request.getParameter("txtUserName");

if(request.getParameter("txtPassword") == null)
    password = "";
else
    password = request.getParameter("txtPassword");


Runtime r = Runtime.getRuntime();
Process p = null;
String s = null;
String cmd = "/tools/scripts/jspTest.sh";

p = r.exec(cmd + username + password);
InputStreamReader isr = new InputStreamReader(p.getInputStream());
BufferedReader br = new BufferedReader(isr);
String line = null;
while((line = br.readLine()) != null){
    out.println(line);
}

p.waitFor();
%>
4

1 に答える 1

1

will not allow themの意味はわかりませんが、スクリプトを呼び出す方法が機能しないことは明らかです。

cmd + username + password

のような文字列になります/tools/scripts/jspTest.shmyusernamemypassword

Java がこれを実行しようとすると、システムはそのコマンドを見つけられません (スクリプト名にユーザー名/パスワードが埋め込まれていない限り)。おそらく、これらの値を (適切な引数として) 渡す方法を調整する必要があると思います。

于 2012-10-10T13:25:43.223 に答える