(defn db-create-record [{:keys [email name password data] {data {}}}]

    (-> (with-go-transaction [tx]

          (<execute! tx ["INSERT INTO Site_Owner (email, name, pwhash, data) VALUES ($1, $2, crypt($3, gen_salt('bf', 8)), $4::JSONB) RETURNING id"

                         email name password data]))

        (get-in [:rows 0 :id])))


(defn db-read-record [{:keys [email password]}]

    (->> (<!! (query! *postgresql*

                      ["SELECT id, email, name, activep, ctime, data FROM Site_Owner WHERE email = $1 AND pwhash = crypt($2, pwhash)"

                       email password]))

         first

         map->SiteOwner))



인젝션은 조팝들이 쓰는 프흐프 아니면 가능하기나 하냐? 


PostgreSQL pgcrypto 익스텐션 쓰면 간단히 해결되는 부분 ㅇㅇ



한줄요약: 조팝용 언어나 조팝용 디비를 안쓰고 제대로 된 개념만 탑재하면 걍 10분이면 평생 인젝션 안되는 코드 완성되는 부분