Commit graph

15632 commits

Author SHA1 Message Date
Kijin Sung
b8569aa5ab Fix missing semicolon 2017-03-06 15:43:40 +09:00
Kijin Sung
11afa4db42 Add CSRF token to all dynamic forms 2017-03-06 15:37:18 +09:00
Kijin Sung
e82e3fb18c Implement isSameOrigin() to simplify origin determination 2017-03-06 15:11:45 +09:00
Kijin Sung
14300cbcc3 Insert CSRF token into every AJAX request 2017-03-06 14:47:42 +09:00
Kijin Sung
6afa7b3255 Merge branch 'develop' into pr/csrf-token 2017-03-06 14:34:35 +09:00
Kijin Sung
90424db6cb Fix incorrect permissions on document module actions 2017-03-06 14:17:47 +09:00
Kijin Sung
ef202542c1 Version 1.8.33 2017-03-06 14:11:41 +09:00
Kijin Sung
701f4b5e07 Prevent loading the autoloder more than once 2017-03-06 14:11:30 +09:00
bnu
f833caf7f0 Fix #2049 XEVE-17-008 스크랩한 게시물에서 발생할 수 있는 문제 고침
- 제보자 : Jeongun.baek
2017-03-06 14:07:43 +09:00
bnu
ada67465cf 내장 모듈의 act에 대한 퍼미션 정리 2017-03-06 14:06:04 +09:00
bnu
8e33a096a4 Fix #2052 XEVE-17-011 2017-03-06 13:48:26 +09:00
Kijin Sung
c58f172265 Fix #740 clear member cache after admin edit 2017-03-06 12:15:52 +09:00
Kijin Sung
e116206c13 Fix #740 incorrect template code in admin member edit screen 2017-03-06 11:59:39 +09:00
Kijin Sung
b3fb993f73 Insert CSRF token in all AJAX requests via exec_xml(), exec_json(), exec_html()
일단 공식적으로 지원하는 AJAX 함수 3종에 CSRF 토큰을 삽입해 본다.
추후 체크 방식을 변경하거나 보안을 더욱 강화할 경우 X-CSRF-Token 헤더와 비교할 수도 있다.
일반 폼 제출이나 임의의 AJAX 요청에도 CSRF 토큰을 삽입하는 것은 다음 커밋에...
2017-03-06 11:51:38 +09:00
Kijin Sung
e2511a0269 Insert CSRF token using meta tag in common_layout.html
<body> 태그의 속성이나 그 밖의 태그를 사용하지 않는 이유는
<body>가 로딩되기 전에 먼저 AJAX 요청을 시도하는 서드파티 자료가 있기 때문이다.
<head> 상단에 CSRF 토큰을 넣어야 이런 자료에서도 토큰이 누락되지 않는다.

다른 CSM나 프레임워크들도 <head> 상단에 <meta> 태그를 사용하여
CSRF 토큰을 삽입하는 사례가 많으며, csrf-token은 이런 용도로
WHATWG에 공식적으로 등록된 meta name이다.

cf. https://wiki.whatwg.org/wiki/MetaExtensions
2017-03-06 11:46:37 +09:00
Kijin Sung
a0f2388842 Add Session::getGenericToken() for general-purpose token handling 2017-03-06 11:24:09 +09:00
Kijin Sung
81511e47b1 Enhance permissions check on module config actions 2017-03-06 11:05:53 +09:00
Kijin Sung
387dd1f78b Fix #741 do not allow empty HTML content in document and comment 2017-03-06 10:50:06 +09:00
Kijin Sung
29f2f6a47f Fix #740 force logout user if denied or limited 2017-03-06 10:27:11 +09:00
Min-Soo Kim
46055ffa66 Merge pull request #739 from misol/develop
네모의 꿈 스킨 링크 텍스트 색상 선명도 강화.
2017-03-03 23:19:58 +09:00
MinSoo Kim
cf67e12133 네모의 꿈 레이아웃 최대 가로 폭 확대.
960px 은 너무 좁은 것 같아서 조금 더 넓힘.
2017-03-03 23:12:48 +09:00
MinSoo Kim
60248dabe9 스킨에서 색상 변수 확인 강화, 링크 텍스트 색상 선명도 증가. 2017-03-03 23:07:39 +09:00
Min-Soo Kim
38beb451f0 Merge pull request #733 from misol/develop
Update the readme file with English translation.
2017-03-03 15:59:38 +09:00
Kijin Sung
39be19ae5c Fix error when deleting selected documents 2017-03-03 14:00:21 +09:00
Kijin Sung
cf01038ce6 Refresh member info when setSessionInfo() is called 2017-03-03 01:05:13 +09:00
Kijin Sung
a67a78ebba Use local variable instead of class property to handle member info
회원정보를 다룰 때 너도나도 $this->memberInfo를 덮어쓰기 때문에
이게 도대체 어디서 온 변수인지 신뢰할 수가 없음.
심지어 로그인에 실패해도 $this->memberInfo는 그대로 남아 있음.

잘못 사용할 경우 심각한 보안 문제가 발생할 수 있으므로
클래스 속성을 공유하지 않고 각 메소드에서 로컬 변수만 사용하도록 변경함.
회원정보를 반드시 서로 공유해야 하는 경우 Context::get('logged_info')를 사용함.
2017-03-03 00:59:42 +09:00
Kijin Sung
90590829d6 글쓴이에게는 무조건 세션 권한 부여 - 수정 버전 2017-03-03 00:58:14 +09:00
Kijin Sung
9389b96f95 Revert "글쓴이에게는 무조건 세션 권한 부여"
This reverts commit 2840740286.
2017-03-03 00:57:41 +09:00
conory
2840740286 글쓴이에게는 무조건 세션 권한 부여
비회원 글쓰기 후 본문 페이지에서 비밀번호 인증을 받아야 하기 때문에 매우 번거로움.
2017-03-03 00:36:04 +09:00
Kijin Sung
5e9273d5f3 Fix incorrect lang code in simple_world member skin 2017-03-03 00:16:09 +09:00
Kijin Sung
9143493f13 Restrict addGrant() to current request only 2017-03-02 23:24:28 +09:00
Kijin Sung
e4fe2430d3 Change 로그인 관리 to 자동 로그인 관리 2017-03-02 21:18:55 +09:00
Kijin Sung
7510cdf2e1 Fix autologin failing on third visit 2017-03-02 21:17:49 +09:00
Kijin Sung
7d508f50bd Remove unnecessary grant of admin rights on nonexistent documents 2017-03-02 21:02:49 +09:00
Kijin Sung
238d97e4ab Restrict effect of setGrant() to current request
앞으로 또 발견될지도 모르는 보안 취약점으로 인한 피해를 줄이기 위해
문서나 댓글에 대하여 setGrant()를 호출하더라도 해당 세션 전체가 아닌
하나의 요청 내에서만 관리권한을 부여받도록 고칩니다.

세션 전체에 관리 권한을 부여하려면 새로 추가된 setGrantForSession()
메소드를 사용하여야 하며, 이것은 함부로 사용해서는 안됩니다.

그동안 getDocument(), getComment() 등에 $is_admin 파라미터가 너무
남용되어 왔으므로, 이 권한을 제한하는 것만으로도 서드파티 호환성에
미치는 영향을 최소화하면서 상당한 효과가 있을 것으로 보입니다.
2017-03-02 20:41:36 +09:00
Kijin Sung
9615d85d81 Remove admin rights from all widget document methods 2017-03-02 20:19:23 +09:00
Kijin Sung
3eaed085a0 Merge pull request #736 from kijin/pr/cleanup-point-module
포인트 모듈 보안 점검 및 정리
2017-03-02 18:08:57 +09:00
Kijin Sung
87648f49d4 Fix point for attached files when updating document 2017-03-02 18:03:14 +09:00
Kijin Sung
dafbfadc93 Add option to keep existing group when point is reduced #610 2017-03-02 17:47:50 +09:00
Kijin Sung
9791808b87 General cleanup of trigger handling in point.class.php 2017-03-02 17:13:27 +09:00
Kijin Sung
33d36f7a51 General cleanup of point.model.php 2017-03-02 16:56:19 +09:00
Kijin Sung
e370ba680f Improve shared caching and invalidation of member points 2017-03-02 16:52:33 +09:00
Kijin Sung
5b22b0399c Fix double-deduction of comment points on document deletion 2017-03-02 16:45:15 +09:00
Kijin Sung
0d2db40e02 Don't double-subtract points when deleting document or comment with attached files 2017-03-02 16:35:35 +09:00
Kijin Sung
da2be81260 Add and subtract points for comment attachments 2017-03-02 16:30:57 +09:00
Kijin Sung
590b11aa23 Refactor all remaining triggers in Point module 2017-03-02 16:09:38 +09:00
Kijin Sung
0b71f425ed Cache module config in point triggers 2017-03-02 15:03:45 +09:00
Kijin Sung
d4136f9081 Refactor triggerInsertMember() and triggerAfterLogin() 2017-03-02 14:57:43 +09:00
Kijin Sung
d4ccf4222d Refactor triggerUpdateVotedCount() 2017-03-02 14:15:04 +09:00
Kijin Sung
c86c3a16de Implement _getModulePointConfig() and clean up read/download triggers 2017-03-02 13:11:21 +09:00