나는 데이터베이스 내부를 드러내는 것이 좋지 않다고 들었지만 비교적 높은 프로필 사이트를 많이 발견했다. Chartboost와 ServerDensity는 URL에 MongoDB 문서 _id
필드를 노출합니다.데이터베이스 내부를 노출하는 것이 좋지 않습니까?
누군가가 왜 그렇게 나쁜지에 관해 밝힐 수 있습니까? 내가 생각할 수있는 유일한 점은 사람들이 읽을 수있는 URL이 아니기 때문에 SEO에 좋지 않지만 사실일까요?
나는 데이터베이스 내부를 드러내는 것이 좋지 않다고 들었지만 비교적 높은 프로필 사이트를 많이 발견했다. Chartboost와 ServerDensity는 URL에 MongoDB 문서 _id
필드를 노출합니다.데이터베이스 내부를 노출하는 것이 좋지 않습니까?
누군가가 왜 그렇게 나쁜지에 관해 밝힐 수 있습니까? 내가 생각할 수있는 유일한 점은 사람들이 읽을 수있는 URL이 아니기 때문에 SEO에 좋지 않지만 사실일까요?
데이터베이스 내부를 노출함으로써 데이터베이스 서버를 인터넷에 노출 시키거나 사용자가 임의 쿼리를 실행하는 것과 같은 것을 이해합니다. 이 물건은 분명히 나쁘다. 또는 데이터베이스 스키마를 어떻게 든 노출하면 악의적 인 사용자가이를 자신의 이점으로 사용할 수 있습니다.
URL에 개체 ID를 사용하는 것이 좋습니다. 인간은 어쨌든 URL을 암기하지 않으며 검색 엔진은 포스트에 대한 링크가 포스트 슬러그 또는 포스트 ID로 구성되었는지 상관하지 않습니다.
심지어 stackoverflow는 데이터베이스 ID-s를 URL에 표시합니다. 어쨌든 당신은 어떻게 든 리소스를 식별해야합니다 그것은 대리 키 또는 자연 수 있습니다. 기본적으로 모든 단일 사이트는 URL (일반적으로 PK)에 어떤 종류의 ID를 사용합니다. 왜 그들이 몽고 디부를 사용한다고 생각합니까? 긴 PK가 아닌 GUID가있는 관계 데이터베이스 일 수도 있습니다
다른 데이터베이스 스키마를 표시하더라도 SQL 주입으로부터 보호 되어야만 아무 일도 일어나지 않습니다.
하지만 SO의 ID는 DB와 관련이 없습니다. mongoDB _id – UpTheCreek
DB 고유 ID는 무엇입니까? 대리인 또는 자연어 PK를 데이터베이스에서 특수한 "not not"ID로 변환 할 이유가 없습니다. ID – Anton
Db 특정, 즉 단순히 자동 증가, GUID 또는 다른 일반적으로 사용되는 DB 식별자가 아닙니다. 기본 MongoDB ObjectId는 레코드가 생성 된 날짜, 문서를 만든 머신의 식별자, 앱 뒤에 사용 된 db를 식별합니다. 물론, _id를 자신의 식별자 유형으로 대체 할 수 있습니다.이 경우 SO와 동일한 상황이됩니다. – UpTheCreek