자동로그인 모듈 관리자 페이지 모듈 업데이트 필요
CMS/프레임워크 | XE 1.x |
---|---|
개발 언어 | PHP 7.2 |
오늘 갑자기 저게 뜨네요. 이럴 경우 모듈 어디를 점검해 봐야 하나요? 따로 모듈을 수정하거나 한 것이 없습니다. 또 모듈의 버전이 업데이트 되었다는 메시지는 아닙니다. 모듈 자체에서 뭔가 변경이 필요하다는 것이 작동한 것 같은데요.
어디 어디를 점검해봐야 하나요? 모듈 업데이트 하기 눌러도 변화는 없네요.
CMS/프레임워크 | XE 1.x |
---|---|
개발 언어 | PHP 7.2 |
오늘 갑자기 저게 뜨네요. 이럴 경우 모듈 어디를 점검해 봐야 하나요? 따로 모듈을 수정하거나 한 것이 없습니다. 또 모듈의 버전이 업데이트 되었다는 메시지는 아닙니다. 모듈 자체에서 뭔가 변경이 필요하다는 것이 작동한 것 같은데요.
어디 어디를 점검해봐야 하나요? 모듈 업데이트 하기 눌러도 변화는 없네요.
댓글 10
https://github.com/ajkj/xe-auto_login_module/commit/1ef22f12a35275cd135689fef10b06c1a31fbc3e
여기 커밋에 보면 ..
size를 제거하는 커밋이 있는데요.
https://github.com/ajkj/xe-auto_login_module/blob/master/auto_login.class.php#L75-L104
https://github.com/ajkj/xe-auto_login_module/blob/master/auto_login.class.php#L127-L154
이 부분에는 위 커밋과 관련해 제거된게 없어 보이는데
문제가 없는건가요???
여기에서부터 시작하는 코드가 관리자페이지에서 true를 반환하면 업데이트 버튼이 생기게 되는 겁니다. 왜 생기는지부터 찾고 그다음 moduleUpsate에서 그 작업이 되는질 찾아야 합니다.
혹시 모듈업데이트 하기 를 누가 발생시키는지 콘솔에서라도 볼수 있게 코드를 추가해 볼 수 있을까요? 해보질 않아서 어떻게 하는지는 몰라서요.
일단 무식하게 체크하는 부분들을 주석해가면서 테스트를 해보는 것으로....
일단 업데이트가 발생되는 부분은
https://github.com/ajkj/xe-auto_login_module/blob/master/auto_login.class.php#L374-L377
여기로 확인이 되었습니다.
if(empty($this->config->auto_login_cookie_encryption_cipher_mode) ||
$this->config->auto_login_cookie_encryption_cipher_mode !== AesPhpSimple::getPreferedMode() ){
return true;
}
모듈 설정의 쿠키 암호화 부분인데....
이 모듈이 설정이 약간 특이한게 설정 저장을 누르면 메시지 출력되는 부분이 없습니다. 그런데 변경사항은 저장이 잘 되거든요.
s:40:"auto_login_cookie_encryption_cipher_mode";N;
이렇게 되어있는데 이게 잘못된건지는 봐도 잘 모르겠네요.
if(empty($this->config->auto_login_cookie_encryption_cipher_mode) ||
$this->config->auto_login_cookie_encryption_cipher_mode !== AesPhpSimple::getPreferedMode() ) {
$this->config->auto_login_cookie_encryption_cipher_mode = AesPhpSimple::getPreferedMode();
}
$oModuleController = getController('module');
$oModuleController->insertModuleConfig('auto_login',$this->config);
$this->config->auto_login_cookie_encryption_cipher_mode = AesPhpSimple::getPreferedMode();
AesPhpSimple::getPreferedMode() 의 결과값이 제대로 저장이 안되는건지 아니면 결과값 자체가 이상하게 나오는건지 ...
이때 변경이 있는 듯 합니다.
openssl_get_cipher_methods()
을 직접 출력해보니 아래와 같습니다.
Array ( [0] => aes-128-cbc [1] => aes-128-cbc-hmac-sha1 [2] => aes-128-cbc-hmac-sha256 [3] => aes-128-ccm [4] => aes-128-cfb [5] => aes-128-cfb1 [6] => aes-128-cfb8 [7] => aes-128-ctr [8] => aes-128-ecb [9] => aes-128-gcm [10] => aes-128-ocb [11] => aes-128-ofb [12] => aes-128-xts [13] => aes-192-cbc [14] => aes-192-ccm [15] => aes-192-cfb [16] => aes-192-cfb1 [17] => aes-192-cfb8 [18] => aes-192-ctr [19] => aes-192-ecb [20] => aes-192-gcm [21] => aes-192-ocb [22] => aes-192-ofb [23] => aes-256-cbc [24] => aes-256-cbc-hmac-sha1 [25] => aes-256-cbc-hmac-sha256 [26] => aes-256-ccm [27] => aes-256-cfb [28] => aes-256-cfb1 [29] => aes-256-cfb8 [30] => aes-256-ctr [31] => aes-256-ecb [32] => aes-256-gcm [33] => aes-256-ocb [34] => aes-256-ofb [35] => aes-256-xts [36] => aria-128-cbc [37] => aria-128-ccm [38] => aria-128-cfb [39] => aria-128-cfb1 [40] => aria-128-cfb8 [41] => aria-128-ctr [42] => aria-128-ecb [43] => aria-128-gcm [44] => aria-128-ofb [45] => aria-192-cbc [46] => aria-192-ccm [47] => aria-192-cfb [48] => aria-192-cfb1 [49] => aria-192-cfb8 [50] => aria-192-ctr [51] => aria-192-ecb [52] => aria-192-gcm [53] => aria-192-ofb [54] => aria-256-cbc [55] => aria-256-ccm [56] => aria-256-cfb [57] => aria-256-cfb1 [58] => aria-256-cfb8 [59] => aria-256-ctr [60] => aria-256-ecb [61] => aria-256-gcm [62] => aria-256-ofb [63] => bf-cbc [64] => bf-cfb [65] => bf-ecb [66] => bf-ofb [67] => camellia-128-cbc [68] => camellia-128-cfb [69] => camellia-128-cfb1 [70] => camellia-128-cfb8 [71] => camellia-128-ctr [72] => camellia-128-ecb [73] => camellia-128-ofb [74] => camellia-192-cbc [75] => camellia-192-cfb [76] => camellia-192-cfb1 [77] => camellia-192-cfb8 [78] => camellia-192-ctr [79] => camellia-192-ecb [80] => camellia-192-ofb [81] => camellia-256-cbc [82] => camellia-256-cfb [83] => camellia-256-cfb1 [84] => camellia-256-cfb8 [85] => camellia-256-ctr [86] => camellia-256-ecb [87] => camellia-256-ofb [88] => cast5-cbc [89] => cast5-cfb [90] => cast5-ecb [91] => cast5-ofb [92] => chacha20 [93] => chacha20-poly1305 [94] => des-cbc [95] => des-cfb [96] => des-cfb1 [97] => des-cfb8 [98] => des-ecb [99] => des-ede [100] => des-ede-cbc [101] => des-ede-cfb [102] => des-ede-ofb [103] => des-ede3 [104] => des-ede3-cbc [105] => des-ede3-cfb [106] => des-ede3-cfb1 [107] => des-ede3-cfb8 [108] => des-ede3-ofb [109] => des-ofb [110] => desx-cbc [111] => id-aes128-CCM [112] => id-aes128-GCM [113] => id-aes128-wrap [114] => id-aes128-wrap-pad [115] => id-aes192-CCM [116] => id-aes192-GCM [117] => id-aes192-wrap [118] => id-aes192-wrap-pad [119] => id-aes256-CCM [120] => id-aes256-GCM [121] => id-aes256-wrap [122] => id-aes256-wrap-pad [123] => id-smime-alg-CMS3DESwrap [124] => rc2-40-cbc [125] => rc2-64-cbc [126] => rc2-cbc [127] => rc2-cfb [128] => rc2-ecb [129] => rc2-ofb [130] => rc4 [131] => rc4-40 [132] => rc4-hmac-md5 [133] => seed-cbc [134] => seed-cfb [135] => seed-ecb [136] => seed-ofb [137] => sm4-cbc [138] => sm4-cfb [139] => sm4-ctr [140] => sm4-ecb [141] => sm4-ofb ) 1
모듈에서 찾고 있는 것이..
static public function getPreferedMode(){
$arr = openssl_get_cipher_methods();
foreach( $arr as $key => $val){
if($val === 'AES-128-CTR'){
return 'AES-128-CTR';
}
}
foreach( $arr as $key => $val){
if($val === 'AES-128-CBC'){
return 'AES-128-CBC';
}
}
return null;
}
이렇게 되어있었는데요. 이제 대문자로 된 것은 보이지 않습니다. 이것 소문자로 바꾸면 될까요??
static public function getPreferedMode(){
$arr = openssl_get_cipher_methods();
foreach( $arr as $key => $val){
if($val === 'aes-128-ctr'){
return 'AES-128-CTR';
}
}
foreach( $arr as $key => $val){
if($val === 'aes-128-cbc'){
return 'AES-128-CBC';
}
}
return null;
}
실제 리턴하는 값이 모듈에서 사용될 수 있어서 저기는 일단 대문자로 유지했습니다.
이후 의견 계시면 수정하도록 하겠습니다.
이것 해결하는데 반나절을 다 보내다니..