나는 내 데이터베이스 마이그레이션 파일에서 이러한 문자열/텍스트 필드가 있습니다레일 ActiveRecord 유효성 검사 : 문자열의 최대 길이?
t.string :author
t.string :title
t.string :summary
t.text :content
t.string :link
을 그리고이 내 질문입니다 : 모든 문자열/텍스트 속성이 두 가지 목적을위한 최대 길이 유효성 검사를해야한다, 보안
- (몇 MB의 텍스트 입력을받지 않으려는 경우) 및 데이터베이스 (string = varchar 인 경우, mysql은 255 자로 제한됩니다). 그게 맞습니까? 아니면 데이터베이스의 모든 문자열/텍스트 속성에 대해 최대 길이 유효성 검사를하지 않는 이유가 있습니까?
- 저자와 제목의 길이가 너무 길어서 문자열로 저장하기에는 너무 길지 않으므로 그 각각에 대해 최대 길이를 255로 설정해야합니까?
- URL의 최대 길이가 약 2000자인 경우 링크를 텍스트가 아닌 문자열로 저장하는 것이 안전합니까? regexp를 사용하여 형식을 이미 검증하고 있다면 링크 속성의 최대 길이를 검증해야합니까?
- 무제한 길이의 입력으로부터 데이터베이스를 보호하기 위해 컨텐츠 (텍스트) 속성이 최대 길이를 가져야합니까? 예를 들어, 텍스트 필드의 최대 길이를 합리적으로 100,000 자로 설정하는 것입니까, 아니면 완전히 무의미하고 비효율적입니까?
나는이 질문들이 어떤 사람들에게는 중요하지 않겠지 만 모든 응용 프로그램에 요구되는 입력의 유효성 확인이라고 생각합니다. 여기서는 오히려 편집증적일 가치가 있다고 생각합니다.