2011-09-14 9 views
0

나는 자신의 계정에있는 파일 {username}.ini에 저장된 사용자 정보를 기반으로 내 사이트를 구축하고 있습니다.내 .ini 파일을 해킹/수정할 수 있습니까?

세션에서 중요한 정보가 뜨지 않기를 원했기 때문에이 방법을 사용하기로 결정했습니다.

그렇다면 보안 위험이 여기에있어 사용자 정보를 처리하기 위해 $_SESSION을 사용하는 것이 좋습니다.

파일 권한이 444으로 설정되어 있으므로 read-only 파일의 역할을 수행합니다. 내 응용 프로그램을 코딩하는 동안 어떤 유형의 문제가 예상되는지 또는 생각할 수 있습니다.

나는 .ini 확장자가있는 파일의 직접보기를 거부하는 파일도 .htaccess 개 배치했습니다.

시스템 침입 차단 시스템 (ssh) 또는 이와 유사한 시스템 침입과는 별도로 시스템 파일을 볼 때 (다른 문제 모두) .ini 파일에 포함 된 정보를 누군가 도용 할 수 있습니까?

.ini 파일의 데이터를 암호화하고 가능하면 서버 측 암호를 해독하여 내 PHP 페이지에서 정보를 읽을 수 있지만 .ini 파일을 열 수있는 방법을 찾지 못했을 가능성에 대한 조언은 무엇입니까? 내가 ’

+3

* 중요한 정보가 세션에 떠 다니는 것을 원하지 않기 때문에이 방법을 사용하기로 결정했습니다. * 기본적으로 세션에 중요한 사용자 이름을 입력하여 세션의 중요한 데이터를 제거 했습니까? – Jon

+0

내가 당신을 이해하는지 모르겠지만, 세션에 관해서. 세션을 도용 당할 가능성을 원치 않았습니다. – Eli

+0

읽을 ini를 어떻게 알 수 있습니까? – Jon

답변

0

중요한 데이터는 세션에 저장하면 안되지만 중요한 데이터는 웹 루트 안의 파일에 저장하면 안됩니다. 민감한 데이터는 웹 루트 뒤에서 방화벽 뒤에있는 보안 저장소에 속합니다.

"민감한 데이터"를 고려하고 있는지 궁금 할 것입니다. 우리는 개인적인 개인 정보에 대해 이야기하고 있습니까? 암호? 나는 왜 당신이 그것들을 어느 곳에서 원할 지 상상할 수 없다. 중요한 데이터는 필요할 때까지 안전한 상점에 ​​보관하십시오. 그런 다음 요구하고, 필요한 것을하고, 임시 사본을 폐기하십시오. 다시 필요할 때 다시 요청하십시오.

. 이론적으로는 .htaccess 규칙이이를 막고있을 때 정보를 얻을 가능성이 희박할 수도 있지만, 우리가 살고있는 완벽하지 않은 세상에서 우리는 하나의 훼손 될 수있는 방어선. Apache HTTPd는 완벽한 시스템이 아닙니다. 그것은 에 취약점이있을 수 있습니다. 그리고 만약 그렇다면, 그 취약점들이 당신의 파일을 읽는데 악용 될 수 있습니다. 그러면 갑자기 답은 "예, 파일이 해킹 당할 수 있습니다"로 바뀝니다.

웹 루트 뒤에 파일을 배치하면 아파치가 파일을 볼 수없는 위치로 파일을 이동하게됩니다. 따라서 아파치는 타협 할 수 없습니다. 더 나은 방법은 방화벽 뒤에있는 데이터베이스에 데이터를 저장하는 경우 다른 방어선을 추가하는 것입니다. 더 나아가서는 데이터베이스의 데이터를 암호화 할 수 있습니다.

"심층 방어"의 원칙은 다중 방어 층이 단일 레이어보다 우수한 것을 나타냅니다. 합리적이라면 계층 중 하나가 실패 할 경우 중복성을 제공하는 방어 계층을 가져야합니다.

+0

데이터베이스 로그인을 저장하고 있습니다. 등록하는 각 하위 도메인 사용자에 대한 구성 내 데이터베이스에없는 사용자 특정 데이터를 검색하기 위해 데이터베이스에 액세스해야하기 때문에 데이터를 가져올 위치를 PDO 연결에 알릴 방법이 필요했습니다. – Eli

+0

그런 다음 공통 연결을 사용하여 다른 DC에 저장하지 않으시겠습니까? 그런 다음 사용자가 세션을 시작하면 연결 정보를 얻고 연결을 만든 다음 해당 연결을 세션에 캐시합니다. 나는 PHP 개발자가 아니기 때문에 많은 연결 개체에 오버 헤드 문제가 발생할 지 모르겠다.하지만 연결을 만들고 계속 사용하기 위해 캐시하는 것이 일반적이라고 생각한다. –

+0

나는 그 접근법을 시도했지만 상상할 수있는 한 번에 1000 명의 사용자를위한 열린 연결이 있습니까 ??? – Eli

0

는 보안 전문가가 아니에요 나는 ’이 t 당신의 방법으로 본질적으로 잘못 아무것도 볼 돈,하지만 디렉토리 외부 공개 디렉토리에 .INI 파일을 넣어 PHP를 통해 로컬로 액세스하는 것이 가장 보인다.

-1

저는 1 점을 제외하고 Jason과 동의하는 경향이 있습니다.레이어링은 해킹하기가 다소 어려워 지지만 데이터는 여전히 어딘가에서 상점에서 사용할 수 있으며 그 자체가 본질적으로 위험하다는 점을 알게됩니다.

당신은 아마 해킹에 의한 것이지만 실제로 들어가기를 원하는 사람은 아닙니다.이 데이터를 보호하는 유일한 방법은 환경에서 사용할 수없는 소금을 사용하는 만료 인증 방법을 허용하는 알고리즘을 만드는 것입니다.

관련 문제