New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[버그] SEQ 충돌 , 에디터 파일업로드문제 ,1.7.3.6버전 #274
Comments
버그가 아니라고 봅니다. |
큰 문제가 되지는 않겟지만 , 이자체가 프로그램 문제가 아닐가요? 누군가가 장난적으로 이렇게 seq를 고쳐서 글을 등록하게 된다면 다른 분들이 게시판에 글등록할때 방해가 되지 않을가요? |
말씀 들어보니 그럴수도 있겠네요. 비단 파일뿐만 아니라 시퀀스를 사용하는 모든 부분에서 그럴 수 있겠네요. |
@yongirl320 그리고, 만약 장난으로 시퀸스를 바꿨을때 getNextSequence가 바꾼 번호 다음으로 간다면 큰 문제가 되지만 시퀸스는 정상적으로 기록된 번호의 다음번호를 처리하기 때문에 오히려 더 안전하게 프로그래밍 된게 아닐까 합니다만? |
@largeden 여러 모듈에서 사용하게 되는 srl(시퀸스)는 반드시 xe_sequence테이블에 존재하는 시퀸스가 되어야 하는게 아닌가요 ? |
@yongirl320 |
제가 이글을 작성할때 적어놓았습니다. 클라이언트로 부터 받은 document_srl을 디비에 저장하기전에 xe_sequence 테이블에서 존재하는 시퀸스인지 이러한 검증이 없어서 잘못된 document_srl이 입력될수 있는거죠. |
그렇군요... @yongirl320 님께서 그 해결책을 코드로 풀리퀘스트 해주시면 좋을거 같아요 :) |
@largeden |
@yongirl320 님 정도면 금방하실거 같아요 ^^ |
@yongirl320 |
@yongirl320 @largeden |
디비의 최대SEQ값을 확인합니다.
임의의 게시판에서 글쓰기를 하고 파일하나를 업로드합니다.
다시 디비의 최대 SEQ를 확인합니다. 파일을 하나만 업로드하면 seq값이 2가 증가합니다. 하나는 게시판 document번호이고 하나는 파일저장번호입니다.
이때 firebug를 이용하여 document번호가 이미 저장된것을 확인할수 잇습니다.
firebug를이용하여 document_srl값을 +4합니다. 게시판에 글을 쓸때
파일을 하나만 업로드할경우 seq를 모두4개 생성합니다,
즉 다음번에 똑같은 방식으로 글을 등록하면 +4한 seq가 생성되죠
수정한후 글등록을 합니다.
+4한 document_srl로 게시판에 글이 등록된것을 확인할수 있습니다.
198번글로 등록되었습니다 . 이때 디비의 최대 seq를 확인하면
197번으로 되어있습니다.
다른 브라우저를 사용해서 다시 글등록을 합니다. 파일을 하나만 첨부하구요
이때 생성된 seq가 이미 사용중인거로 되여서 글수정으로 넘어가게 되면서
권한이 없습니다.라고 나타 납니다.
문제는 document_srl를 받아서 새로운 문장으로 저장할경우
디비의 seq테이블에서 존재여부를 확인한번 해야 되지 않을가요?
실제 파일업로드를 할때 seq번호를 생성하는자체가 문제라고 생각합니다.
제 생각은 파일을 업로드할때는 db에 저장하지 않고 업로드한 파일명을
먼저 폼의 hidden에 저장해두엇다가 글등록할때 글을 디비에 넣고 그때
생성된 document_srl를 받아서 파일경로와 함께 file테이블에 저장하는게
낮지 않을가 싶습니다.
The text was updated successfully, but these errors were encountered: