Java 개발: 코드 보안 및 취약성 보호
요약:
현재 인터넷 시대에 코드 보안 및 취약성 보호는 Java 개발에 매우 중요합니다. 이 문서에서는 몇 가지 일반적인 코드 보안 위험과 취약점을 소개하고 해당 솔루션을 제공합니다. 동시에 구체적인 코드 예제는 이러한 보안 문제를 방지하는 방법을 보여줍니다.
샘플 코드:
import org.apache.commons.codec.digest.DigestUtils; import org.apache.commons.lang3.RandomStringUtils; public class PasswordUtils { private static final int SALT_LENGTH = 16; public static String encryptPassword(String password) { String salt = RandomStringUtils.randomAlphanumeric(SALT_LENGTH); String encryptedPassword = DigestUtils.sha256Hex(password + salt); return salt + encryptedPassword; } public static boolean checkPassword(String inputPassword, String storedPassword) { String salt = storedPassword.substring(0, SALT_LENGTH); String encryptedInputPassword = DigestUtils.sha256Hex(inputPassword + salt); return storedPassword.equals(salt + encryptedInputPassword); } }
샘플 코드:
import java.sql.Connection; import java.sql.PreparedStatement; import java.sql.ResultSet; import java.sql.SQLException; public class DatabaseUtils { public static void main(String[] args) { String username = "admin'; DROP TABLE users; --"; String password = "pass123"; Connection conn = null; PreparedStatement pstmt = null; ResultSet rs = null; try { conn = getConnection(); String sql = "SELECT * FROM users WHERE username = ? AND password = ?"; pstmt = conn.prepareStatement(sql); pstmt.setString(1, username); pstmt.setString(2, password); rs = pstmt.executeQuery(); } catch (SQLException e) { e.printStackTrace(); } finally { closeResources(conn, pstmt, rs); } } private static Connection getConnection() throws SQLException { // 获取数据库连接 return null; } private static void closeResources(Connection conn, PreparedStatement pstmt, ResultSet rs) { // 关闭数据库连接和其他资源 } }
샘플 코드:
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>XSS Prevention</title> </head> <body> <h1>Welcome <%= StringEscapeUtils.escapeHtml4(request.getParameter("name")) %></h1> </body> </html>
샘플 코드:
import java.io.File; import java.io.IOException; import java.util.UUID; public class FileUploadUtils { public static void main(String[] args) { String fileName = "evil_script.jsp"; File file = new File("/uploads/" + UUID.randomUUID().toString() + ".jpg"); try { file.createNewFile(); // 处理上传文件的逻辑 } catch (IOException e) { e.printStackTrace(); } } }
결론:
코드 보안과 취약성 보호는 Java 개발에 매우 중요합니다. 이 문서에서는 비밀번호 보안, SQL 주입 공격, 크로스 사이트 스크립팅 공격, 파일 업로드 취약점에 대한 솔루션을 설명하고 해당 코드 예제를 제공합니다. 개발자는 코드 보안 문제 및 취약점을 방지하기 위해 항상 경계하고 적절한 보안 조치를 취해야 합니다.
위 내용은 Java 개발: 보안 및 취약점 보호 코딩 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!