- 안전하다고 확인된 라이브러리나 프레임워크를 사용한다. 즉, OpenSSL 이나 ESAPI의 보안기능을 사용한다.
안전하지 않은 코드 ▼
public void sendBankAccount(String accountNumber, double balance) {
BankAccount account = new BankAccount();
account.setAccountNumber(accountNumber);
account.setToPerson(toPerson);
account.setBalance(balance);
AccountManager.send(account);
}
안전한 코드 ▼
public void sendBankAccount(HttpServletRequest request, HttpSession session, String accountNumber, double balance){
//재인증을 위한 팝업 화면을 통해 사용자의 credential(자격증명)을 받는다
String newUserName = request.getParameter("username");
String newPassword = request.getParameter("password");
if( newUserName == null || newPassword == null ) {
throw new MyException("데이터 오류");
}
// 세션으로부터 로긴한 사용자의 credential을 읽는다
String password = session.getValue("password");
String userName = session.getValue("username");
//재인증을 통해서 이체여부를 판단한다.
if( isAuthenticatedUser() && newUserName.equal(userName) && newPassword.equal(password) ) {
BankAccount account = new BankAccount();
account.setAccountNumber(accountNumber);
account.setToPerson(toPerson);
account.setToPerson(balance);
AccountManager.send(account);
}
}
반응형
'△ > SecureCoding' 카테고리의 다른 글
안전하지 않은 리플렉션 (2) | 2023.02.01 |
---|---|
JS) eval() 을 사용하면 안되는 이유 (0) | 2023.02.01 |
무결성 점검 없는 코드 다운로드 (0) | 2022.11.21 |
프로세스 제어 (0) | 2022.11.18 |
크로스 사이트 스크립트 공격 취약점: DOM (0) | 2022.11.18 |
댓글