Commit graph

2366 commits

Author SHA1 Message Date
Kijin Sung
19331e6746 Additional XSS checks #1088 2018-09-18 13:27:55 +09:00
Kijin Sung
e03ccbd7a9 Also filter XML and HTML file uploads
- Detect possible XML (including SVG) by actual content, not extension
- Check large files in overlapping chunks to reduce memory usage
- Check XML files for external entities
- Check HTML files for SSI and PHP code
2018-09-18 02:45:48 +09:00
Kijin Sung
60d390f52e Initial mitigations for #1088 #1089 2018-09-17 00:48:47 +09:00
conory
6d081b9fec XML쿼리에서 CAST(regdate as DATE) 와 같은 함수 사용시 발생하는 오류 수정
datatype도 escape되는 바람에 발생된 문제로, 우선 대문자에 한하여 escape 되지 않도록 수정하였습니다.
주석에 떡하니 된다고 해놓고 실제로는...
2018-09-15 00:58:50 +09:00
Kijin Sung
9b6e88bc33 Add try...catch to trigger functions 2018-09-06 19:44:25 +09:00
Kijin Sung
b048200a30 Allow multiple selection of display debug types 2018-09-06 17:00:50 +09:00
Kijin Sung
4d5401ef89 Merge branch 'develop' into pr/exception 2018-09-06 10:45:59 +09:00
Kijin Sung
10c8d11785 Add FeatureDisabled and SecurityViolation exception classes 2018-09-06 10:00:47 +09:00
Kijin Sung
5b7ce90a3d Also catch exceptions in init() method of module instances 2018-09-06 00:19:27 +09:00
Kijin Sung
74b07cb5c4 Remove unnecessary parentheses in MySQL error handler 2018-09-03 15:48:02 +09:00
Kijin Sung
f6fa7493f6 Catch Rhymix\Framework\Exception in module act and triggers 2018-08-26 23:46:13 +09:00
conory
9e59a6d839 페이지 편집 페이지에서 '모듈 설정 화면' 설정과는 상관없이 무조건 사용자 레이아웃 적용
레이아웃마다 너비가 모두 다르므로 관리자 레이아웃 적용시 정확도가 엄청 떨어짐
2018-08-14 15:20:00 +09:00
Kijin Sung
6f447df66c Add option to view module config screen in admin layout
모듈 설정 화면을 관리자 레이아웃으로 보는 기능을 옵션으로 만들어 복원함
최근 수정된 관리자 레이아웃 디자인을 여기에도 적용
2018-08-14 12:41:30 +09:00
Kijin Sung
4ca3bdccc6 Display module settings in own layout
Partially revert 8d718c0
2018-08-14 11:11:58 +09:00
conory
8d718c0ae8 mid=board&act=dispBoardAdminBoardInfo등 모듈 관리자페이지에서 디자인이 깨지는 문제 수정 2018-08-08 11:56:46 +09:00
Kijin Sung
9e08bd40ac
Merge pull request #1053 from rhymix/pr/css-unload-minimal
.btn 및 .message 클래스의 CSS 속성을 제거하는 옵션 제공 #950
2018-08-06 16:39:48 +09:00
Kijin Sung
a49f2f5f06 Change Context::isAlwaysSSL() to config('session.use_ssl_cookies')
- Main session cookie is httpOnly if use_ssl is true
- SSO cookie is always httpOnly
2018-08-06 01:23:22 +09:00
Kijin Sung
2c9bb88a14 Merge branch 'develop' into pr/1051 2018-08-06 01:08:51 +09:00
Kijin Sung
637e4f9e46 Move admin layout assets to admin layout template files
@conory
2018-08-05 19:19:30 +09:00
Kijin Sung
c176be9c9f Add an option to disable XE styles for .btn and .message
To disable XE styles for .btn, .btn-group, and .btnArea:
define('DISABLE_XE_BTN_STYLES', true);

To disable XE styles for .message:
define('DISABLE_XE_MSG_STYLES', true);

This is a limited version of XE's __DISABLE_DEFAULT_CSS__ constant.
Other styles and default CSS/JS resources are not affected.

DO NOT UNLOAD DEFAULT CSS/JS RESOURCES.
2018-08-04 23:20:45 +09:00
Kijin Sung
a489012d6d Remove unnecessary mobile.css
해당 파일의 내용은 rhymix.less와 100% 중복되므로 별도 로딩할 필요가 없음
2018-08-04 23:18:29 +09:00
Kijin Sung
f8c42cc10b Fix #1049 disappearing zero values in extravar 2018-08-04 21:08:03 +09:00
Kijin Sung
8db2ac16c7 Revert "basic files의 로드를 막을 수 있도록 Context::unloadBasicFiles() 추가"
This reverts commit 35b73eec0b.
2018-08-04 20:56:41 +09:00
Kijin Sung
867d6930cf Revert "35b73eec0b 보완"
This reverts commit 30e0a5c583.
2018-08-04 20:56:34 +09:00
Kijin Sung
f12cf74dda Revert "다른 프레임워크와 css 충돌을 피하기 위해 rhymix.less의 class/id 이름에 prefix 처리"
This reverts commit b1cb1f3f34.
2018-08-04 20:56:24 +09:00
conory
b1cb1f3f34 다른 프레임워크와 css 충돌을 피하기 위해 rhymix.less의 class/id 이름에 prefix 처리
변경전의 xe.less 파일도 rhymix.less와 함께 load 하여 호환정 유지

CSS 충돌 예)
bootstrap의 .btn
사용 예)
bootstrap 사용시엔 {Context::unloadBasicFiles('xe')}으로 unload 시키면 문제없음
2018-08-03 19:45:30 +09:00
conory
30e0a5c583 35b73eec0b 보완
파일이름으로 unload 할 수 없도록 변경 (호환성 파괴 위험성이 크므로)
2018-08-03 12:32:42 +09:00
Min-Soo Kim
25d2e4892a Revert "Example of the cookie option"
This reverts commit 93a35c251b.
2018-08-02 00:35:52 +09:00
Min-Soo Kim
93a35c251b Example of the cookie option 2018-08-02 00:35:27 +09:00
Min-Soo Kim
30fd0c428c Improve cookie security; Secure flag
SSL 항상 사용 옵션인 경우 쿠키도 이에 맞추어 SSL 인 경우에만 사용되도록 secure flag 를 추가합니다.
선택적 SSL 인 경우 SSL 이 적용되지 않은 구간에서도 쿠키를 읽을 수 있어야 하므로, 적용하지 않습니다.

이 PR 로 변경되는 내용

- Context 클래스에 checkSslEnforce 메소드 추가
- SSL 항상 사용 옵션일 경우, 가능한 secure 플래그를 달아서 쿠기 굽기
- SSO 쿠키의 경우 javascript 접근이 필요 없을 것으로 예상 ( https://github.com/rhymix/rhymix/pull/1034 ) 되어서 `httpOnly` 플래그도 추가.

안드로이드 웹뷰의 경우 StackOverFlow 의 Reading secure cookies in android WebView 라는 글을 참고하면, 읽어오는 것이 가능하다고 합니다. 주소에 프로토콜을 적지 않을 경우 secure flag 가 달린 쿠키는 정상적으로 읽어오지 않는 듯 하니 안드로이드 웹뷰를 사용하시는 분들은 대응이 필요할 것으로 보입니다.

https: //github.com/rhymix/rhymix/pull/1034 를 실수로 merge 하여서 다시 올립니다.
Co-Authored-By: Kijin Sung <kijin@kijinsung.com>
2018-07-29 12:15:24 +09:00
Min-Soo Kim
b62a1322c9 Revert "Merge branch 'develop' into develop"
This reverts commit ec54bbd415, reversing
changes made to 9b12e0a71c.
2018-07-29 11:54:14 +09:00
Min-Soo Kim
ec54bbd415
Merge branch 'develop' into develop 2018-07-29 11:49:27 +09:00
Kijin Sung
71bee10ae9 Support data types not defined in XE 2018-07-05 23:46:21 +09:00
Kijin Sung
32c9de472a Improve addColumn() and modifyColumn()
- 특정 컬럼 이후에 컬럼을 추가할 수 있도록 허용
- 모든 integer 타입의 size 속성을 무시 (tinyint 제외)
2018-07-05 22:43:53 +09:00
conory
35b73eec0b basic files의 로드를 막을 수 있도록 Context::unloadBasicFiles() 추가
예) Context::unloadBasicFiles('admin' , 'rhymix.less', ...);
2018-07-05 16:45:55 +09:00
Kijin Sung
20fa55a3fc Support HAVING in XML queries
GROUP BY에 사용되는 <groups> 태그 안에 <having> 태그를 넣을 수 있습니다.
문법은 <conditions> 부분에 적용되는 것과 같습니다.

<query id="queryId" action="select">
    ...
    <groups>
        <group column="document_srl" />
        <having>
            <condition operation="more" column="document_srl" var="myvar" default="0" />
        </having>
    </groups>
    ...
</query>

결과: SELECT ... GROUP BY document_srl HAVING document_srl >= 0
2018-07-03 15:40:52 +09:00
Kijin Sung
2b5cded376 Remove commented debug code 2018-07-02 16:41:13 +09:00
Kijin Sung
3359431d08 Allow nested condition groups
XML 쿼리에서 <conditions><group> 안에 <group> 태그를 또 쓸 수 있도록 허용함.
이제 WHERE (a AND (b OR (c AND d))) 이런 조건을 작성할 수 있음.
2018-06-30 23:01:55 +09:00
Kijin Sung
2cfb7585af Convert more SQL keywords to uppercase 2018-06-30 23:00:28 +09:00
Kijin Sung
3aaa0c60b2 Add sensible operation names to XML query syntax
XML 쿼리 문법에서 사용되는 operation 이름을 상식적으로 개선함

차이점을 이해하기 어려운 excess/more, below/less 조건을 다른 프레임워크에서
흔히 사용하는 gt (greater than), gte (greater than or equal to),
lt (less than), lte (less than or equal to) 라는 이름으로도 쓸 수 있도록 함.
실제 부등호는 XML 태그에 사용되므로 아직은 사용 불가...

not_in은 있는데 not_equal, not_null, not_like는 없는 문제를 개선함.
이제 위의 4가지 모두 언더바(_)를 넣든 안 넣든 동일한 의미로 쓸 수 있음.
2018-06-30 16:01:44 +09:00
Kijin Sung
efa1b603c4 Condition pipe defaults to AND
XML 쿼리 작성시 pipe="and"를 일일이 추가하지 않아도 기본값이 AND가 되도록 함
2018-06-30 15:55:06 +09:00
Kijin Sung
83362034cd Convert all SQL keywords to upper case
대소문자를 섞어서 쓰고 있던 SQL 키워드들을 모두 대문자로 통일
as, and, or, like, desc 등이 소문자였음
2018-06-30 15:42:52 +09:00
Kijin Sung
6070707941 Remove index hint classes for MS SQL and Cubrid 2018-06-30 15:31:00 +09:00
Kijin Sung
f00ba6f272 Remove and disable all other DB classes 2018-06-30 15:13:22 +09:00
Kijin Sung
0e4eec6a3f Merge all MySQL DB classes into DBMysql.class.php 2018-06-30 15:12:59 +09:00
conory
bacca5d025 getActionForward() 에서 값이 없을 경우 빈 리턴을 하도록 개선
rss 모듈의 action forward가 등록되지 않는 문제 수정 (기존 서드파티에도 같은 문제가 발생될 것 같아 이렇게 수정함)
2018-06-21 16:13:03 +09:00
Kijin Sung
bb6dc77acd 투명한 배경의 PNG 파일은 썸네일 생성시에도 투명하게 나오도록 변경
xpressengine/xe-core#2243
2018-06-11 23:40:33 +09:00
Min-Soo Kim
f8edfacde2 Refine secure cookie flag
_use_ssl 대신 site_module_info 를 직접 참조하도록 수정.
함수 이름을 조금 더 자연스럽게 수정.
2018-04-28 11:25:15 +09:00
Min-Soo Kim
da95eed96e Fix typo; Context class
오타 수정. 문장 끝 세미콜론 추가
2018-04-24 20:20:50 +09:00
Min-Soo Kim
c1c9a94623 Improve cookie security; Secure flag
SSL 항상 사용 옵션인 경우 쿠키도 이에 맞추어 SSL 인 경우에만 사용되도록 `secure` flag 를 추가합니다.
선택적 SSL 인 경우 SSL 이 적용되지 않은 구간에서도 쿠키를 읽을 수 있어야 하므로, 적용하지 않습니다.
2018-04-24 19:30:38 +09:00