비디오: Securing your data structure with Security Rules - The Firebase Database For SQL Developers #8 2024
SQL 테이블에서 데이터를보고, 작성하고, 수정하고, 삭제하는 것을 제어 할 수 있다면, 잘 보호 해줘. 대부분의 위협에 대응합니다. 지식이 풍부한 해커는 간접적 인 방법을 사용하여 집을 샅샅이 뒤져 볼 수 있습니다.
올바르게 설계된 관계형 데이터베이스는 참조 무결성을 가지며 는 데이터베이스의 한 테이블에있는 데이터가 다른 모든 테이블의 데이터와 일치 함을 의미합니다. 참조 무결성을 보장하기 위해 데이터베이스 디자이너는 사용자가 테이블에 입력 할 수있는 데이터를 제한하는 테이블에 제약 조건을 적용합니다.
예를 들어, 당신은 유명한 월 스트리트 주식 애널리스트입니다. 많은 사람들이 주식 선택의 정확성을 믿기 때문에 가입자에게 주식을 추천 할 때마다 많은 사람들이 그 주식을 구입하고 가치가 높아집니다.
다음 명령 예제와 같이 FOUR_STAR의 주식 이름 필드를 외래 키로 사용하는 새 테이블을 다른 사람이 만들 수있는 경우 여전히 취약합니다.
해커는 이제 뉴욕 증권 거래소, 미국 증권 거래소 및 나스닥에있는 모든 주식의 이름을 테이블에 삽입 할 수 있습니다. 성공한 인서트는 해커에게 자신이 기밀 테이블에 지정한 주식과 일치하는지 알려줍니다. 해커가 전체 주식 목록을 추출하는 데 오랜 시간이 걸리지는 않습니다.
앞의 예와 같은 해킹으로부터 자신을 보호 할 수 있습니다.
GRANT REFERENCES (Stock) ON FOUR_STAR to SECRET_HACKER;
분명히 이것은 과장입니다. 절대 신뢰할 수없는 사람에게 중요한 테이블에 대한 액세스를 허용하지 않습니까? 네가하는 일을 깨달은 건 아니야.그러나 오늘날의 해커들은 기술적으로 영리하지 못합니다. 그들은 또한 오도 된 사람들이 보통하지 않을 일을하는 것을 주인으로 삼습니다. 매끄러운 화자가 당신의 기밀 정보와 관련된 것을 언급 할 때마다 최대한 경고합니다.
남용 할 수있는 권한을 부여하지 마십시오. 사실, 사람들은 이마에 인쇄 된 보증서를 가지고 오지 않습니다. 그러나 장거리 여행을 위해 새 차를 빌려주지 않으면 중요한 테이블에 대한 REFERENCES 특권을 부여해서는 안됩니다.
앞의 예는 REFERENCES 특권을주의 깊게 제어하는 좋은 이유 중 하나입니다. 다른 사람이 RESTRICT 옵션을 사용하여 HOT STOCKS의 제약 조건을 지정하고 테이블에서 행을 삭제하려고 시도하면 DBMS는 다음과 같은 작업을 수행 할 수 있음을 알립니다. 이렇게하면 참조 무결성 제약 조건을 위반하게됩니다.
DROP 명령을 사용하여 테이블을 파기하려면 먼저 다른 사람이 자신의 제약 조건 (또는 테이블)을 삭제하도록해야합니다.
-
결론: 다른 사람이 테이블에 무결성 제약 조건을 지정할 수 있도록 허용하면 잠재적 인 보안 침해가 발생할뿐만 아니라 다른 사용자가 때때로 방해가 될 수도 있습니다.