command의 첫번째 인자에 array 타입이 올 경우 기존 방식과는 다르게 처리 되는것을 이용
// String Typekey, value, callback => Command(command, [key, value], callback)
// Array Type[key, value] => Command(command, key, value)
redis_client.send_command(log_query[0], log_query[1], function(err, result)
예시로 다음처럼 log_query를 get으로 받아 command를 실행시켜주는 함수가 있다. callback함수까지 있는 형식이지만
여기에 다음처럼 array형태로 줄경우 callback함수는 무시된다.
?log_query[0]=set&log_query[1]=admin&log_query[1]=1234
log_query[0]=set
log_query[1]=[admin,1234] 가 들어가게 된다.
즉 send_command(set, admin, 1234)가 실행되는것
그럼 인자를 하나만 쓰려면?
?log_query[0]=keys&log_query[1][0]=*
다음처럼 2차원배열을 이용하면 된다.
send_command(keys,*)이 실행될것이다.
만약 session관리를 redis로 관리할경우, 사용자의 session 값에 해당하는 key에 object를 serialize 한거같은 string 형태의 문자열로 저장하여 관리하게 된다. 즉 나의세션key:value형태로 저장되는데 여기서 value를 수정하면 다른사용자로 위장이 가능해진다.
'웹' 카테고리의 다른 글
Spring 삽질 (0) | 2022.06.28 |
---|---|
SSTI 문서 (0) | 2022.06.23 |
mysql error based injection 잘 되어 있는 곳 (2) | 2022.06.14 |
한글 blind sqlinjection (0) | 2022.06.13 |
python flask debugger pin취약점 문제 (0) | 2022.06.08 |