1. 유저 패스워드 암호화 적용

그 동안 dgamelaunch(Telnet/SSH 플레이 서버)와 향후 서비스 통합을 위해서 비밀번호를 날 것으로 저장했음.

왜 그랬냐면 dgamelaunch만의 로그인 해시 로직이 있는데 웹타일이 그냥 아무 해시 로직이나 가져다 쓰면 회원 정보 DB를 두개를 써야하는 상황이 오니까 그랬는데

이번에 dgamelaunch에서 비밀번호를 해시하는 코드 보고 그대로 웹타일에 구현했음.


아무리 회원가입 시에 날 것으로 저장한다고 경고 문구를 삽입했었고, 서버에 db 파일 유출 경로가 생기지 않게 코드를 짰지만

향후 프로젝트가 여느 곳에 호스팅된다고 생각하면 보안상 좋지 않은 것은 사실이니 대규모 소스 정리전에 구현하려고 했고 이번에 구현해서 적용하게 된 것.


적용과 동시에 지금 웹핵에 날 것으로 저장된 패스워드들은 모두 해시처리 했고 서버 이전과 백업하면서 생겼던 날것 db 파일 사본들은 전부 삭제 했음


viewimage.php?id=3fb1d92de0&no=24b0d769e1d32ca73dec83fa11d028313e457d3f472465ed713dd2021f942a44e99f605cd266de51e30979b2c2f84ddb3a8f9da47ddba9fffa24d913ce58b39c

위키에 누가 저렇게 적어놨는데, 맞는 말이지만 한가지 틀린/애매한 부분을 정정하자면

비밀번호가 암호화되서 저장되지 않는거랑 인터넷 주소 창에 Password가 노출되는 것은 관련이 없음

인터넷 주소 창에 Password가 노출되었던 건 지금 회원가입 창이 HTML의 form 요소로 만들어져 있는데

HTML form 태그의 제출 버튼을 누르면 HTTP GET으로 form 내부의 입력창 데이터를 한데 모아서 보내는 기본 동작이 있음

이 기본 동작을 덮어쓰기 해서 웹소켓으로 비밀번호를 보내는 식으로 웹핵 회원가입 부분이 구현되어 있는데 옛날에 버그가 약간 있어서

기본 동작으로 작동해서 폼 데이터를 HTTP GET 요청으로 보내졌던 것임

근데 이건 단순 동작 오류라 서버에서 비밀번호를 날것으로 저장하는 부분이랑은 아예 연관이 없는 부분이고 이것과 비밀번호 유출도 관계가 없음! (혹시 이쪽 지식이 없는 사람이 봤을 때 저 글귀를 읽고 오해가 생길 수도 있을 거 같아서 말하는 것임)

해당 동작 오류로 보내진 HTTP 요청은 내 서버에 할당된 처리가 없으니 당연히 404가 뜨면서 무산되었고 그게 처리의 전부임.


3줄 요약

1. 향후 개발간 확정되지 않은 부분 때문에 비밀번호를 날 것으로 저장했었음

2. 웹핵 홈페이지 버그와 비번 비암호화 저장은 관련이 없고 사족으로 비밀번호 유출과도 관련이 없음.

3. 이제 비밀번호 암호화해서 저장함!


2. 상태 이상 표시 구현 & 상태창 수정

곁들이로 구현된 줄 알고 있었는데 하중 알림, 배고픔 알림만 처리되고 상태이상은 아예 데이터 처리 부분이 달라서 안나오고 있길래

표시되게끔 구현했음. 이거 구현하면서 하중, 배고픔 알림 색깔 처리 제대로 동작하게 고쳤고 스텟 창에서 색깔 하이라이팅이 있는 부분은

전부 그대로 표시되게끔 코드를 손봤음


<터미널>

viewimage.php?id=3fb1d92de0&no=24b0d769e1d32ca73dec83fa11d028313e457d3f472465ed713dd2021f942a44e99f605cd266de518e647bb2cbf34cdf0d7647e398b230d8429ccc56bbc0d08ea9

viewimage.php?id=3fb1d92de0&no=24b0d769e1d32ca73dec83fa11d028313e457d3f472465ed713dd2021f942a44e99f605cd266de518e647bb2cbf34cdf0d7647e398e76c8a1acbc901e8c0d08e98

<웹타일>

viewimage.php?id=3fb1d92de0&no=24b0d769e1d32ca73dec83fa11d028313e457d3f472465ed713dd2021f942a44e99f605cd266de518e647bb2cbf34cdf0d7647e398b137de1e9ccc04b7c0d08eda

viewimage.php?id=3fb1d92de0&no=24b0d769e1d32ca73dec83fa11d028313e457d3f472465ed713dd2021f942a44e99f605cd266de518e647bb2cbf34cdf0d7647e398bf6c8e4899c807bcc0d08e44

blessed potion of gain ability를 마셨을 때 하이라이팅 되는 스텟 등도 웹타일에서 하이라이팅 되게함

질병등으로 감소될 때도 빨간색으로 하이라이트 표시됨

추가적으로 이전에 구현한 경험치통 인터페이스 잘못된 방식으로 구현된거라 지우고 하단 아이콘 E(xp)로 경험치 표시 방법 바꿨고

칭호/아이콘이 너무 길어서 인터페이스가 왼쪽으로 튀어나오는 현상 고침


viewimage.php?id=3fb1d92de0&no=24b0d769e1d32ca73dec83fa11d028313e457d3f472465ed713dd2021f942a44e99f605cd266de518e647bb2cbf34cdf0d7647e398be32d31998ca00bfc0d08e4d

HP/PW 수치에 따라 색 변화를 주는 RC를 쓰고 있었다면 그것도 웹타일에 똑같은 색으로 적용됨



3. 인벤토리 RC 컬러/하이라이팅 지원

viewimage.php?id=3fb1d92de0&no=24b0d769e1d32ca73dec83fa11d028313e457d3f472465ed713dd2021f942a44e99f605cd266de51e30979b2c2f84ddb3a8f9da42482aefff92a8b13ce58b39c


viewimage.php?id=3fb1d92de0&no=24b0d769e1d32ca73dec83fa11d028313e457d3f472465ed713dd2021f942a44e99f605cd266de518e647bb2cbf34cdf0d7647e398b26ddd48cacb53bac0d08ed4viewimage.php?id=3fb1d92de0&no=24b0d769e1d32ca73dec83fa11d028313e457d3f472465ed713dd2021f942a44e99f605cd266de518e647bb2cbf34cdf0d7647e398b1658a4e9ccb57eac0d08ed0

bold/italic/underline등과 넷핵에서 지원하는 인벤토리 RC 컬러 설정이 웹타일에서도 적용되게끔 구현함


viewimage.php?id=3fb1d92de0&no=24b0d769e1d32ca73dec83fa11d028313e457d3f472465ed713dd2021f942a44e99f605cd2238b0385097ab5cbfe4db3ff873e0347e22853c251ce06

뭔놈의 색깔과 텍스트 효과와 플래그가 이리도 많은지... 아주 구현하다가 환장하는 줄 알았음


MENUCOLOR=" silver dagger"=bright cyan&underline

대충 이런 식으로 RC에서 사용가능하니 넷핵 위키의 Menucolors 참고


4. 비정상 종료시 사용자 알림 구현

RC 구문 에러로 게임이 켜지지 않아서 연락온 경우가 종종 있어서

viewimage.php?id=3fb1d92de0&no=24b0d769e1d32ca73dec83fa11d028313e457d3f472465ed713dd2021f942a44e99f605cd266de518e647bb2cbf34cdf0d7647e398e330da49919d04b6c0d08ed1

게임 시작이 안되면 이유가 메시지로 출력되게끔 손봄


오늘 게임이 안켜졌다고 다른 분 통해 건너 연락주신 w*님은

viewimage.php?id=3fb1d92de0&no=24b0d769e1d32ca73dec83fa11d028313e457d3f472465ed713dd2021f942a44e99f605cd266de518e647bb2cbf34cdf0d7647e398b330894c9cc653bdc0d08e97

OPTIONS=role:Archeologist,race:Human,gender:male,align:Neutral.

뒤에 점이 하나 들어가서 안켜진거길래 제가 RC에서 지워놨습니다. 이제 실행 잘 됩니다


4. 성채 등에서 오른쪽 타일 한줄이 짤리던 버그 수정

제보주신 C*님 감사합니다.


5. 게임이 크래시로 종료시 로깅 강화

원인 파악이 가능하게 로그가 남도록 손을 봄


6. 게임 종료 요청 핫키 Ctrl+C → Ctrl+Z로 변경

텍스트 복사하다가 게임을 꺼먹는 것을 몇번 봐서 원래 Ctrl+Z도 게임 종료키기도 하고

바꾸는게 더 나을 것 같아서 변경함.


7. 선택 프롬프트 강조색 추가

viewimage.php?id=3fb1d92de0&no=24b0d769e1d32ca73dec83fa11d028313e457d3f472465ed713dd2021f942a44e99f605cd266de518e647bb2cbf34cdf0d7647e398b535dc4f9cce07b9c0d08e46

아무 표시가 없어서 자꾸 일반 텍스트로 착각하는 바람에 키를 잘못 누르게 되는 것 같아서 추가함


03-01 06:50 웹핵에 적용됨


원래 모바일 UI 만져볼려고 했었는데 벌써 연휴 이틀이 다듬고 버그잡느라 날아갔네;;


<웹핵 개발 일지>

넷핵 웹타일 버전 알파 테스트 시작함

웹핵 알파 테스트간 많이 나온 질문 빠른 Q&A

오늘 웹핵 개발한 것 + 넷핵 발키리 퀘스트 레벨 (20.09.08)

오늘자 웹핵 개발 일지 (20.09.11)

최근 웹핵 개발 일지 (21.02.07)

오늘자 웹핵 개발 일지 (21.02.09)

오늘자 웹핵 개발 일지 (21.02.14)

오늘자 웹핵 개발 일지 (21.02.24)

웹핵 향후 개발 계획(21.02.25)

오늘자 웹핵 개발 일지(21.02.27)


viewimage.php?id=3fb1d92de0&no=24b0d769e1d32ca73dec83fa11d028313e457d3f472465ed713dd2021f942a44e99f605cd266de51e30979b2c2f84ddb3a8f9da4798dfbabf9258c44ce58b39c

웹핵 개발 합류할 사람 계십니까?

GitHub

Back-end: C/JS(ES2019)

Front-end: HTML/CSS/JS

위와 같은 조건의 개발이 가능하고 웹핵 개발에 관심이 있으신 분들의 기여 환영합니다.

개발 참여에 관심이 있으신 분들은 admin@nethack.live로 연락 주시면 감사하겠습니다.