본인 4년제 전공자 유니티개발 3년차고 소켓 코딩 할 줄암.
DB공부 시작했음.
string connectString = "Server=localhost;Database=shop_db;Uid=root;Pwd=0000;";
요렇게 생긴 ConnectString은 클라에 심으면 안되는거죠?
DB한테 쿼리 보내는건 서버만 해야하는거죠?
이거 말고는 해킹을 막을 수 있는 방법이 없는거 같은디.
본인 4년제 전공자 유니티개발 3년차고 소켓 코딩 할 줄암.
DB공부 시작했음.
string connectString = "Server=localhost;Database=shop_db;Uid=root;Pwd=0000;";
요렇게 생긴 ConnectString은 클라에 심으면 안되는거죠?
DB한테 쿼리 보내는건 서버만 해야하는거죠?
이거 말고는 해킹을 막을 수 있는 방법이 없는거 같은디.
shop_db 는 스키마고,
root 랑 pass 는 나중에 아이디 비번 변경하셔야 하지 않을까 보통 1234 로 하는데,이거는 보안이 뚫려서
네 ㅋㅋ 바꿔야죠. 근데 DB뚫리면 DB만 뚫리는거고 PC자체에 랜섬웨어를 심거나하는건 안되는거겠죠?
네이버를 예로 들면 16자리 암호를 합니다.
랜섬웨어는 OS의 영역입니다.
랜섬웨어는 Operating System 운영체제의 영역입니다.
보통 아이디 이메일로 많이 하십니다.
쿼리 넣어서 보내는 것 같은데 유니티 클라에서
그렇게 할 순 있는데 결국에 클라에 쿼리 넣으면 역컴파일을 통해서 connectstring 볼 수 있는거고 IP만 알면 DB털리지 않나요
암호화를 하셔야죠.
SHA든 256bit든
php 에서 암호화해서 복호화 하는함수도 있던데 C# 은 모르겠습니다.
코드를 암호화 할수가 있다구요?
id pass 워드도 암호화 가능합니다. 특정 알고리즘을 만드셔야죠. ppt로 암호화 복호화 알고리즘. 님이 정하셔서
알고리즘은 님이 정하시는거라서 변수에서, 뚫리지 않는 ....
요즘 디시는 php 단에서 텍스트 input type = text , <= password 하면 바뀌어서 텍스트 노출되는 세상이라서,
웹 Web 은 그렇습니다.
근데 php자체가 서버사이드 스크립트니까 결국 쿼리는 서버가 하는거 같은데
클라이언트 안에서 암호화하고 암호화한 알고리즘을 특정 알고리즘에 따라서 서버서 복호화 다시 암호화 해서 보내고,
https://solbel.tistory.com/1545
개발/sql
[sql/mysql]
암호화 복호화 방법 / AES_ENCRYPT, AES_DECRYPT 사용법 및 예제
출처:
https://solbel.tistory.com/1545
[개발자의 끄적끄적:티스토리]
일단 블로그 많이 보시고 상황에 맞고 보안적인거 사용하시면, 암호화 복호화 알고리즘의 변수는 님이 정하시는겁니다.
아이디 패스워드는 런타임에 입력되는 값이라 암호화 해서 보내는게 이해가 가요 근데 ConnectString은 코드이고 컴파일 될거니까. 어떻게 암호화 한다는건지 모르겠네요
예를 들어 4662라는 변수를 넣어서 암호화한다. 내부 알고리즘을 모르면, 절대 복호화를 할 수 없습니다. ConnectString도 DB에서 암호화가 된 상태로 저장한다고 생각해보시면 아이디 패스워드
connectString 검색하셔서 bing.com 이나 google.com에
ConnectString 까지는 모르겠습니다.
패킷이 길가는 도중에 누가 열어봤을때를 대비해서 암호화해서 막는건 이해하고 있어용 클라이언트 디컴파일해서 뜯어봤을 때 ConnectString 을 본다면 스키마 uid pwd 다 적혀있으니까. 누군가 악의적으로 DB에 이상한 쿼리를 날릴까봐요. 그래서 쿼리 보내는 코드는 서버만 해야하는게 아닌가 싶어서요. 특히 유니티는 역컴파일 너무 쉽던데
C언어에서 strtok로 다 잘라옵니다. 설정.ini 텍스트 파일 포트번호 ip 등
서버 주소 가 최대한 노출이 안되어야 할 것 같습니다. 도메인이랑
strtok 문자열 자르는 함수
흠
https://velog.io/@estell/%ED%81%B4%EB%9D%BC%EC%9D%B4%EC%96%B8%ED%8A%B8-%EC%84%9C%EB%B2%84-%EC%95%84%ED%82%A4%ED%85%8D%EC%B2%98
여기
나오는 3티어 아키텍처 아니고선 connectString노출을 막을 수 없을 것 같네요
URL URI 차이도 이해하시길...
대충 내용 보았는데, 실제 서비스나 구축을 해본적이 없어서...
유니티랑 서버를 2012년부터 편입해서 학교에서 했지만, 코딩 배운거는 2011년 자바
그러니까 걍 2티어로 클라이언트 - DB 찌르려고 해서 클라이언트에 DB 정보 넣어 두신다고 한 거 같은데, 당연히 안 됩니다. 3티어로 서버 태워서 db 찔러야 댐.
https://m.cafe.daum.net/psdotnet/244w/14?q=D_3DXX1nSmrbc0&
클라이언트
쪽 실행파일 디컴파일 해보거나 db 연결 컴포넌트 뜯어 보면 계정정보 유출 가능하다고 하네요.
역시 그렇군요. 3티어가 정답이라고 누가 쉬원하게 말해주는 글을 찾고 있었는데 감사합니다 형님
양방향 암호화를 써도 어쨋든 스트링복호화하기때문에 무조건 딸수있음
구조자체를 변경할것을 추천드림 차라리 서버데이터베이스 연결은 클라이언트에서 하는거 아님 무조건따임