IT/보안코딩
"FINDBUGS The application mixes trusted and untrusted data in session attributes." 라는 메시지는 어플리케이션에서 신뢰할 수 있는 데이터와 신뢰할 수 없는 데이터를 세션 속성에 혼합하고 있음을 의미합니다. 이는 보안 위험을 초래할 수 있습니다. 신뢰할 수 없는 데이터는 악의적인 사용자가 입력한 데이터나, 악성코드에 의해 조작된 데이터 등을 포함할 수 있습니다. 이러한 데이터를 신뢰할 수 있는 데이터와 함께 세션 속성에 저장하면, 악의적인 사용자가 악용할 수 있습니다. 따라서, 이러한 메시지를 받은 경우에는 신뢰할 수 없는 데이터와 신뢰할 수 있는 데이터를 구분하여 저장하는 것이 좋습니다. 1. 세션 속성에 신뢰할 수 없는 데이터를 저장하지 ..
쿠키는 웹사이트가 사용자의 장치에 저장하고 나중에 웹사이트에서 검색할 수 있는 작은 데이터 조각입니다. 로그인 자격 증명 또는 개인 정보와 같은 민감한 데이터를 쿠키에 저장하면, 이 정보가 악의적인 사용자에 의해 중간에 가져가지고 잘못 사용될 수 있어 보안 위험이 있습니다. 쿠키는 자주 세션 정보를 저장하기 위해 사용됩니다. 그래서 사용자는 세션 동안 웹사이트에 지속적으로 로그인할 필요가 없습니다. 하지만 민감한 정보가 쿠키에 저장되면, 쿠키가 적절하게 보호되지 않으면 도적에 의한 도적입으로 유출될 수 있습니다. 민감한 정보를 쿠키에 저장하는 것의 위험을 줄이려면, 암호화와 같은 보안 방식을 사용하고 쿠키를 안전한 연결 (예 : HTTPS)으로만 접근할 수 있도록 설정하는 것이 좋습니다. 또한, 쿠키에 ..
자원삽입 - 외부 입력값을 검증하지 않고 시스템 자원에 대한 식별자로 사용되는 경우, 공격자는 입력값 조작을 통해 시스템이 보호하는 자원에 임의로 접근하거나 수정할 수 있고 잘못된 입력값으로 인해 자원 사이 충돌 발생 RULES NAME - PT_ABSOLUTE_PATH_TRAVERSAL - PT_RELATIVE_PATH_TRAVERSAL - PATH_TRAVERSAL_IN - PATH_TRAVERSAL_OUT - SCALA_PATH_TRAVERSAL_IN - SPRING_FILE_DISCLOSURE - STRUTS_FILE_DISCLOSURE - TEMPLATE_INJECTION_FREEMARKER - JSP_INCLUDE - JSP_SPRING_EVAL - SCALA_PLAY_SSRF - WEAK_H..
SQL 삽입 - DB와 연동된 웹 애플리케이션에서 입력된 데이터에 대한 유효성 검증을 하지 않을 경우, 공격자가 입력 폼 및 URL입력란에 SQL문을 삽입하여 DB로부터 정보를 열람하거나 조작할 수 있는 보안약점을 말한다. 예시 1) // 안전하지 않은 코드 예시 try { String tableName = props.getProperty("jdbc.tableName"); String name = props.getProperty("jdbc.name"); String query = "SELECT * FROM " + tableName + " WHERE Name =" + name; stmt = con.prepareStatement(query); rs = stmt.executeQuery(); } catch (S..