Node-RED의 SQL 주입 방지
개요
Node-RED를 간단한 REST API 서버로 사용하는 문제가 있으며,
DB 서버 (MySQL)에 로그를 저장하는 장치가되어 있지만,
SQL 인젝션 대책은 어떻게 할까라고 생각해, 조사해 본 이야기.
결과
node-red-contrib-sqlstring이라는 노드가 있고, 이것을 사용할 수 있을 것 같다.
단지, Example이 부족하고 있어, 조금 사용법이 알고 괴로웠다···.
사용법
node-red-contrib-sqlstring이라는 노드가 있고, 이것을 사용할 수 있을 것 같다.
단지, Example이 부족하고 있어, 조금 사용법이 알고 괴로웠다···.
사용법
햄버거 메뉴에서 팔레트 관리 선택
노드 추가 탭을 선택하고 검색 문자에 "sqlstring"을 넣으면 node-red-contrib-sqlstring이 표시되므로 "노드 추가"를 클릭하십시오.
추가가 완료되면 팔레트에 node-red-contrib-sqlstring의 노드가 추가됩니다 (왜 스토리지 항목 ...).
흐름은 자꾸 이런 느낌으로 해봅니다.
노드를 두 번 클릭하여 설정을 구성합니다.
SQL 구문을 그대로 쓸 수 있는 것이 기쁘다! (이 노드를 알 때까지 Function 노드에서 어쩌면 썼습니다 ...)
변수는 구문 안에 "?"를 쓰고 Variables 열에 해당하는 변수를 쉼표로 구분하여 설명합니다.
여기서 빠진 것이 변수를 지정하는 방법.
http in 노드에서 받은 데이터는 msg.payload 안에 들어오는데,
예를 들어 브라우저에서 "localhost:1880/test/api/hoge?id=1"을 지정하면
msg.payload.id에 1이 설정되어 다음 노드로 이동합니다.
여기서, Variables란에 「msg.payload.id」라고 지정해도, 능숙한 값이 들어오지 않는다・・・.
시험에 「id」라고 해도, 능숙한 값이 들어오지 않는다・・・.
node-red-contrib-sqlstring의 소스를 보면,
분명히이 경우에는 "payload.id"라고 지정해야하는 것 같습니다.
⇒ Node-RED에서는 이 지정의 방법이 보통인가?
덧붙여서, 이 노드, SQL 인젝션 대책은
htps : // 기주 b. 코 m / mysqljs / sqlst 인 g 을 이용하고 있다는 것.
Reference
이 문제에 관하여(Node-RED의 SQL 주입 방지), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/yossihard/items/6649e127204d1b918ee7텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)