와 나는 다음과 같은 취약점을 가지고 스캔하는 동안 업데이트되지 않음 : 수정이 언급되지만보안 : 세션 식별자는 TCL
[Medium] Session Identifier Not Updated
Issue: 13800882
Severity: Medium
URL: https://<server_name>/register/
Risk(s): It is possible to steal or manipulate customer session and cookies, which might be used to impersonate a legitimate user,allowing the hacker to view or alter user records, and to perform transactions as that user
Fix: Do not accept externally created session identifiers
을하지만 나를 위해 충분하지 않습니다 그것을 완전하게 이해하십시오. 제가 어떻게 이것을 제거해야하는지 안내해주십시오. 또한 질문을 이해하기 위해 더 자세한 내용이 필요한지 알려주십시오. 프로젝트 소스 코드가 tcl에 있습니다.
동일한 코드를 찾았지만 java에 있습니다.
public HttpSession changeSessionIdentifier(HttpServletRequest request) throws AuthenticationException {
// get the current session
HttpSession oldSession = request.getSession();
// make a copy of the session content
Map<String,Object> temp = new ConcurrentHashMap<String,Object>();
Enumeration e = oldSession.getAttributeNames();
while (e != null && e.hasMoreElements()) {
String name = (String) e.nextElement();
Object value = oldSession.getAttribute(name);
temp.put(name, value);
}
// kill the old session and create a new one
oldSession.invalidate();
HttpSession newSession = request.getSession();
User user = ESAPI.authenticator().getCurrentUser();
user.addSession(newSession);
user.removeSession(oldSession);
// copy back the session content
for (Map.Entry<String, Object> stringObjectEntry : temp.entrySet()){
newSession.setAttribute(stringObjectEntry.getKey(), stringObjectEntry.getValue());
}
return newSession;
}
P.S. 나는 TCL에서 초보자입니다. 더 자세한 설명이 필요하면 알려 주시기 바랍니다.
Tcl 서버 코드가 세션 ID를 데이터베이스 항목에 매핑하는 방법을 살펴 보셨습니까? –
BTW, project-open에 대한 태그를 만들었습니다. [이에 대한 질문은 더 명확하게 표시 할 수 있습니다. "오픈 소스"는 확실히 올바른 선택이 아니 었습니다! –
@DonalFellows 세션 ID를 db 항목에 매핑하는 데 사용되는 코드를 찾을 수 없습니다. 그리고 감정에 대한 감사합니다. –