△/SecureCoding
적절한 인증 없는 중요기능 허용
KkingKkang
2022. 11. 21. 18:01
728x90
- 안전하다고 확인된 라이브러리나 프레임워크를 사용한다. 즉, 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);
}
}
728x90