Java 你能从URLConnection获取vrius吗?从网页获取代码?

Java 你能从URLConnection获取vrius吗?从网页获取代码?,java,security,Java,Security,我正在做一个程序,去网站,提取信息和担心安全。这是我使用的代码: public String GetPageCode(String url) throws IOException{ URL page = new URL(url); URLConnection con = page.openConnection(); con.addRequestProperty("User-Agent", "Mozilla/4.76"); // Avoids most filters th

我正在做一个程序,去网站,提取信息和担心安全。这是我使用的代码:

public String GetPageCode(String url) throws IOException{
    URL page = new URL(url);
    URLConnection con = page.openConnection();
    con.addRequestProperty("User-Agent", "Mozilla/4.76"); // Avoids most filters that block out computers
    BufferedReader in = new BufferedReader(new InputStreamReader(con.getInputStream(), "UTF-8"));
    String inputLine;
    StringBuilder sb = new StringBuilder();
    while((inputLine = in.readLine()) != null)
        sb.append(inputLine);
    in.close();

    return sb.toString();
}

是否存在使用此代码下载病毒或恶意文件的威胁

除非您下载并执行可执行代码,否则不会。这不是您所想的,但肯定不是不可能的。您连接到一个不受信任的系统,许多函数解析它发送给您的数据(例如http头)。与所有解析器一样,格式错误的输入可能会触发可利用的bug,最坏的情况是攻击者可以在您的计算机上执行任意代码@zapl由于解析器是用Java编写的,所以不会出现这样的可利用bug。您可能会得到一个
数组索引OutofBoundsException
OutOfMemoryError
或类似的东西。另一方面,应用程序可能会对返回的数据或头执行一些愚蠢的操作。例如,以JavaScript的形式执行。@TomHawtin tackline将字符串保存到光盘就足以打开一个安全漏洞:谁知道在jvm中处理字符串是否有害。@TomHawtin tackline是的,典型的缓冲区溢出不会发生在jls定义的/字节码级别,但在这种情况下,仍然存在本机内存,它使用的JVM/本机库可能有bug,或者JIT可能产生错误代码。时区缩写不是用本机代码处理的吗?Unicode的东西(比如死亡的Unicode可能会毁掉iPhone)?这是理论上的,但我不会说它是不可能的,除非你下载并执行可执行代码。不是你所想的,但肯定不是不可能的。您连接到一个不受信任的系统,许多函数解析它发送给您的数据(例如http头)。与所有解析器一样,格式错误的输入可能会触发可利用的bug,最坏的情况是攻击者可以在您的计算机上执行任意代码@zapl由于解析器是用Java编写的,所以不会出现这样的可利用bug。您可能会得到一个
数组索引OutofBoundsException
OutOfMemoryError
或类似的东西。另一方面,应用程序可能会对返回的数据或头执行一些愚蠢的操作。例如,以JavaScript的形式执行。@TomHawtin tackline将字符串保存到光盘就足以打开一个安全漏洞:谁知道在jvm中处理字符串是否有害。@TomHawtin tackline是的,典型的缓冲区溢出不会发生在jls定义的/字节码级别,但在这种情况下,仍然存在本机内存,它使用的JVM/本机库可能有bug,或者JIT可能产生错误代码。时区缩写不是用本机代码处理的吗?Unicode的东西(比如死亡的Unicode可能会毁掉iPhone)?这是理论上的,但我不认为这是不可能的