source

MongoDB(MongoDB+Node js 콤보)에 삽입하기 전에 사용자 입력을 검사해야 합니까?

manycodes 2023. 6. 25. 20:15
반응형

MongoDB(MongoDB+Node js 콤보)에 삽입하기 전에 사용자 입력을 검사해야 합니까?

NodeJS에서 MongoDB를 사용하고 있는데 데이터베이스 문서를 삽입/업데이트하기 전에 데이터를 삭제해야 하는지 궁금합니다.확실한 답을 찾기가 어렵고 그것을 잘 수행하는 노드 모듈이 있는지, 아니면 $의 문자열을 모두 제거해야 하는지, 아니면 단순히 이것에 대해 걱정할 필요가 없는지 궁금합니다.PHP에 구멍이 있다는 것은 알고 있지만 Node/Mongo(네이티브 드라이버) 콤보를 사용하고 있지만 사용자 입력을 청소해야 하는지는 아직 확실하지 않습니다.

데이터를 String으로 저장하고 Mongo 명령을 실행하기 위해 데이터를 구문 분석하지 않는 경우에는 크게 걱정할 필요가 없습니다.

보안에 대한 좋은 기사입니다.

http://cr.yp.to/qmail/guarantee.html

유일한 문제는 사용자 입력을 검색할 때 발생하며 Mongo 명령을 실행하기 위해 입력을 구문 분석할 때 발생합니다. 여기서 입력을 검사해야 합니다. 그렇지 않으면 공격을 받을 수 있습니다.

당신을 위해 그것을 해줄 npm 패키지가 있습니다.

https://www.npmjs.com/package/mongo-sanitize

그리고 이것에 대한 좋은 기사도.

https://thecodebarbarian.wordpress.com/2014/09/04/defending-against-query-selector-injection-attacks/

응, 넌 그래.자세한 내용은 다음을 참조하십시오. https://www.npmjs.com/package/content-filter

또한 네이티브escape()데이터베이스를 보호하기 위해 에 대한 메서드를 사용할 수 있습니다.

아래 코드 조각을 실행하여 결과를 확인하십시오.

let a = "{$gt:25}"
console.log(a)
console.log(escape(a))

언급URL : https://stackoverflow.com/questions/30585213/do-i-need-to-sanitize-user-input-before-inserting-in-mongodb-mongodbnode-js-co

반응형