최근 JMP Summit에서 저는 개발자들에게 데이터베이스에 대한 자격 증명이 포함된 변수를 숨길 수 있는 방법에 대해 질문했습니다. 내 현재 솔루션은 80% 정도 진행되었습니다. 암호화된 스크립트의 변수에 자격 증명을 설정한 다음 해당 스크립트를 포함()하고 데이터베이스에 연결하는 스크립트에서 변수를 사용합니다. 기본 스크립트를 여는 사람은 누구나 로그 파일로 이동하여 변수를 조회하여 자격 증명을 볼 수 있습니다. JSL 개발자들은 Summit에서 수요가 많았고 나와 대화한 다른 사람들은 변수를 숨기는 방법을 잘 몰랐습니다.
그러다가 나는 이것을 보았다: 암호화 및 전역 변수(jmp.com)
변수 앞에 밑줄 두 개를 넣으면 변수가 거의 숨겨집니다. 표시( __myVar), 인쇄( __myVar) 또는 쓰기( __myVar)를 시도하면 결과가 공백이 됩니다. 엄청난! 하지만 로그에 __myVar을 직접 입력하면 로그가 이를 정의한다는 사실을 발견했습니다. 이는 실제로 변수를 표시하는 가장 쉬운 방법 중 하나입니다.
의도하지 않은 허점인 것 같습니다. 이중 밑줄은 모든 스크립트 메소드를 중지하며 스크립트에서 변수 이름 위로 마우스를 가져가면 내용이 표시되지 않습니다. 하지만 변수를 직접 입력하여 내용을 표시하는 정말 확실한 방법이 있습니다.
기본 스크립트를 암호화하지 않고 연결 문자열만 암호화하고 싶은 데에는 그럴 만한 이유가 있습니다. 이것이 위시리스트 항목인지, 아니면 뭔가 빠졌는지 확실하지 않습니다.