> Java > java지도 시간 > 웹 개발 보안의 Java 요약

웹 개발 보안의 Java 요약

怪我咯
풀어 주다: 2017-06-25 10:22:06
원래의
2553명이 탐색했습니다.

1. 고객이 입력한 원본 데이터의 확인은 스크립트에 의존하지 않습니다. JavaScript 등 클라이언트 측에서 입력 데이터를 확인하는 것이 더 편리하지만 보안상의 이유로 사용할 수 없습니다. 스크립트는 안전하지 않으며 사용자가 스크립트를 차단할 수 있습니다. 우리는 사용자 데이터를 서버로 보내고 서버에서 문자열의 적법성을 확인할 수 있습니다. 2. HTML의 입력 식별자' & lt; '' & gt; ',

3. HTML이 데이터(' & lt; '' & gt; '' 및 '''' ')를 삭제합니다. ' → '는 <' '>'는 μ"' ' &39;'입니다. (2) (3) 크로스 사이트 스크립팅(CSS)으로 인해 발생하는 문제의 해결 방법은 스크립트 기호가 나타나지 않도록 하는 것입니다.

URL에 권한이 있음텍스트

영숫자「;」「/」「?」「:」「@」「&」「=」「+」「$」「,」「-」「_」「. "!""~""*""'"("")""%"

4. 보호해야 할 모든 웹페이지에는 사용자 인증 권한이 있어야 합니다.

로그인 후 SESSION에 userID를 저장하고 인증을 위해 보호해야 할 각 페이지에 스크립트를 추가하세요. 세션이 비어 있으면 인증이 실패하며 다시 로그인해야 합니다.

<%
If Len(Session("ID")) = 0 Then
Response.Redirect "index.html"
End If
%>
로그인 후 복사

다음 정보를 특수 처리하고 있습니다.

*비밀번호

*웹메일의 이메일 내용 등 개인정보

*이름, 나이, 주소 등 개인정보

*웹 애플리케이션 시스템 내 데이터 구조

* 웹 서버 내 최대 티켓 수 등 다양한 시스템 정보

→[1-3.]

5. 미리 유추할 수 있는 세션 ID는 정의할 수 없습니다 →[1-3.]

6 . 키가 중요합니다.

게시물을 사용하여 매개변수를 전달할 때 데이터 매개변수가 URL에 표시되어서는 안 됩니다. 그리고 대책:

*SSL을 기반으로 암호화된 통신

*간섭 전략.

*대화 중 하이재킹 대책

7. 히든 필드의 데이터는 수정 및 전송이 불가능합니다. (히든 필드의 값은 표시할 수 없으나, html 소스 파일에서는 전송되어 그 값을 볼 수 있습니다. 값이 수정 및 전송되는 것을 방지하기 위해) 데이터를 검색하기 위해 숨김을 사용하지 마십시오. 개선 방법은 숨겨진 데이터를 저장하기 위해 세션을 사용하는 것입니다 →[1-5.]

8. 위의 컨트롤에 의해 제출된 데이터에 대한 데이터베이스 쿼리는 합법적입니다. →[1-6.]

9.SQL 작성시 변수와 함께 작성해주세요. 먼저 확인 후 제출(사용자가 제출한 변수를 SQL 텍스트에 넣기 전에 필터링) →[2-1.]

10. SQL을 조합할 때 입력 데이터의 (')와 세미콜론(;)은 반드시 입력되어야 합니다. 처리됩니다. 이유는 9) →[2-1.]

11과 같습니다. 데이터베이스 비밀번호를 스크립트에 삽입하지 마세요. 중요한 데이터 설정은 구성 파일에서 설정할 수 있으며 Windows에서는 레지스트리에서 설정할 수 있습니다. →[2-2.]

12. 데이터베이스 접속 시 사용자 권한이 별도로 설정됩니다. 사용자 권한은 서로 다르며, 이는 데이터베이스 권한 설정을 통해 달성할 수 있으며 이는 보안 향상에 도움이 됩니다. →[2-3.]

13. Java 클래스 패키지 가져오기. 필요한 클래스만 가져오고 사용하지 않는 패키지와 클래스는 가져오지 마십시오. 이렇게 하면 보안을 강화하고 다른 사람이 정보를 얻기 위해 중복 클래스를 사용하는 것을 방지할 수 있습니다. →[3-1.]

14 보안 정책을 사용하세요. 파일(정책) 설정을 통해 파일의 실행 권한을 제어합니다.

파일 경로: ${java.home}/lib/security/java.policy

package org.penglee.policy.test;
//permission java.io.FilePermission "c://winnt//system32//notepad.exe", "execute";
import java.io.IOException;
 
public class NoSecurityManager {
         public static void main(String[] args) {
//                     SecurityManager mySecurityManager = new SecurityManager ();
//                     System.setSecurityManager (mySecurityManager);
                       try {
                                     Runtime myRuntime = Runtime.getRuntime ();
                                     myRuntime.exec ("c://winnt//system32//notepad.exe");
                       } catch (IOException e) {
                                     e.printStackTrace();
                       }
         }
}
로그인 후 복사

→[3-1.]

15. 프라이빗 클래스(private)로 설정하여 클래스 내 데이터 수정을 제한합니다. 또는 구현할 인터페이스를 정의합니다. →[3-2.]

16. 프로그램에 의해 직렬화된 데이터는 암호화되지 않습니다. 직렬화된 데이터를 사용하여 민감한 데이터를 읽는 것을 방지하려면 임시를 사용하여 직렬화된 데이터를 처리할 수 있습니다. →[3-3.]

17. 명백히 상속이 필요한 클래스를 제외하고 최종 클래스를 사용하세요. 이렇게 하면 중요한 정보를 얻기 위해 상속이 악용되는 것을 방지할 수 있습니다. →[3-4.]

18. 오류를 발생시키려면 AssertionError를 사용하세요. 자세한 내용은 해당 클래스의 API 문서를 참조하세요→[3-5.]

19. 데이터 보안을 강화하기 위해 스레드 동기화로 인해 발생하는 데이터 불일치에 주의하세요. →[3-6.]

20. 입력 시 상대 경로를 사용하지 마세요. 상대경로가 포함되면 오류가 발생합니다. 그 이유는 형제 폴더에 액세스했기 때문일 수 있습니다. →[4-1.]

26. 일반 텍스트 비밀번호는 피하세요. 민감한 데이터는 암호화하는 것이 가장 좋습니다 →[9-1.]

27. →[9-1.]

28.29. 경로확인(상대경로 방지) 프로그램을 이용하여 파일명과 데이터의 보안성을 확인하고, 특수문자가 포함된 경우 오류를 보고합니다. →[9-2.]

30.31. 너무 많은 것을 가르치지 않으려면 로그인 시 오류 메시지를 수행할 때 각별히 주의하시기 바랍니다. 사용자에게 표시되는 오류 메시지는 사용자가 프로그램의 내부 구조에 대한 정보를 추론하는 것을 방해하기에 충분하지 않아야 합니다. →[9-3.]

32. 정보처리 중 권한이 필요한 부분은 최대한 적게 하고, 일반적인 정보처리 권한은 최대한 피해야 합니다. 낮은 권한을 가진 사용자 이름을 사용하여 로그인하고, 일반 데이터를 처리하는 데 특별한 권한을 사용하지 마십시오. →[9-4.]


위 내용은 웹 개발 보안의 Java 요약의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

관련 라벨:
원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿