Java 백엔드에서 예외를 발생시키는 대신 HTML 입력에서 프론트 엔드 유효성 검사를 시도합니다.문자열에서 32 비트 정수로의 변환이 오버플로하는지 확인하십시오.
답변
if ((the_number >> 0) != the_number) {
// overflow...
}
등 클라이언트 측 자바 스크립트를 해제 할 수 있기 때문에 당신은 여전히 서버 측의 확인이 필요
,
숫자가 2147483647
이상인지 확인하십시오. 예를 들어
:
if (parseInt(num, 10) > 2147483647)
//BAD!!!
좋은 점은 프론트 엔드뿐만 아니라 Java 백엔드에서도 입력 유효성 검사를 수행해야 함을 언급하는 것입니다. –
@SLaks : 아마도 하한 (-2147483648)도 확인해야 할 것입니다. – kennytm
이 서명되어 있으므로 위의 모든 내용이 적용됩니다. 왜 내가 이걸 생각하지 않았 니? – user267272
그냥 확인 :
if (parseInt(myNumberAsString, 10) > 2147483647) { alert("Invalid int!"); }
너무 늦었습니다! – Phill
- 1. 10 진수에서 정수로의 비트 단위 변환
- 2. MySQL : 어떤 버전인지 확인하십시오 : 32 비트 또는 64 비트?
- 3. 32 비트 64 비트 호환
- 4. 32 비트/64 비트 OS?
- 5. 시간 문자열에서 Zend_Validate_Date로 확인하십시오.
- 6. 문자열에서 datetime을 변환 할 때 변환이 실패했습니다.
- 7. 32 비트 서버 및 32/64 비트 클라이언트가있는 서브 버전
- 8. JavaFX는 32 비트 Windows에서 작동합니까? (또는 32 비트 JVM)?
- 9. 32 비트 컴퓨터
- 10. 샤드 크기 (32 비트)?
- 11. Windows에서 32 비트 오디오?
- 12. microsoft.rtc.collaboration 32 비트
- 13. 32 비트 모드에서 열기
- 14. 변환이
- 15. SQL Server 2008 - 문자열에서 int 로의 변환이 실패합니다.
- 16. 32 비트 윈도우 아래의 64 비트 레지스터
- 17. 32 비트 및 64 비트 ASP.NET 배포
- 18. 64 비트 어셈블리의 32 비트 명령어들
- 19. 32 비트/64 비트 시스템에 관한 질문
- 20. Office의 32 비트 DLL 64 비트
- 21. 64 비트 Weblogic 서버의 32 비트 JDK
- 22. 32 비트 정수에서 비트 단위 조작
- 23. * .WAR (64 비트 x 32 비트) 생성
- 24. 64 비트 Solaris에서 32 비트 포인터로 컴파일
- 25. 32 비트 64 비트 참조 라이브러리
- 26. 32 비트 워드 비트 패턴에서 "에지"찾기
- 27. SharePoint 64 비트 또는 32 비트
- 28. 64 비트 Windows 2008의 32 비트 cluster.exe
- 29. 32 비트 Windows XP 64 비트 VM
- 30. 32 비트 dll에서 64 비트 dll로 변환
@KennyTM - 누군가 JavaScript 및 Java에서만 작업 한 경우 비트 이동과 같은 하위 수준의 작업에 익숙하지 않을 수 있습니다. 현재 수행중인 작업에 대한 설명을 만들 수 있습니까? OP는 32 비트 오버 플로우가 어떻게 생겼는지 알지 못하므로 설명이 도움이 될 것입니다. –
32 비트 오버플로에 익숙합니다. javascript가 32 비트 정수를 명시 적으로 사용합니까? 아니면 구현이 가능합니까? – user267272
@user : 11.7.2 부호있는 오른쪽 시프트 연산자 : "결과는 부호있는 32 비트 정수입니다." (Ref : http://www.ecma-international.org/publications/files/ECMA-ST/ECMA-262.pdf) – kennytm