변수 사용시 초기화 또는 검증을 하지 않고 사용시
초기화하지않은 변수는 그누보드 자체에서 GET, POST 요청 값으로 초기 값이 정해져 공격자가 이를 악용할 수 있습니다. PHP 공식 매뉴얼에서도 경고하고 있는 위험을 그누보드에서 이 경고에도 불구하고 잘못된 방법으로 사용하고있기 때문입니다.
그누보드는 extract() 함수로 GET, POST, SERVER 값을 글로벌 변수로 풀어놓기 때문에 변수 초기화를하지 않고 사용시 악의적인 공격이 가능해집니다.
그누보드 자체에서도 이런 문제로인해 보안취약점이 아직까지도 같은 방식의 문제가 계속 발견되고있죠.
하지만 이 보안패치는 그누보드 자체에서만 문제가 고쳐질뿐이고 스킨이나 플러그인, 빌더 등 서드파티에서는 이 문제가 계속될수있습니다.
보안 문제뿐만 아니라 변수초기화를하지 않고 사용했을 때 사용자 입력값으로인해 마치 정상적으로 변수가 초기화된것처럼 동작할수있기 때문에 오동작 가능성도 있습니다.
extract 함수를 이용한 그누보드의 방식은 일어나지 않아도 될 보안 문제를 일부러 만들어 놓은 것과 다름이 없습니다. 이는 과장이 아니며 조금 편하려고 해놓은 것이라 추측되는데 이로인해 십여년이 넘게 보안문제를 만들어오는 원인이 된것이 사실입니다.
아마도 편의상의 목적이 이제는 뺄수도 없는 상황이라 문제를 안고가는것같은데 최악의 선택이 되고 말았죠. 그누보드 자체 뿐만 아니라 스킨, 플러그인 등의 제작자와 사용자를 무방비로 위험에 노출되게 만들어버렸습니다.
그누보드의 코드가 낡거나 모던PHP를 따라가지 못한다고 계속 이야기가 나오는 이유 중 하나는 단순히 개발 트렌드의 문제나 코드가 이쁘지 않아서가 아닙니다.
이러한 낡거나 나쁜 코드가 곳곳에 있기 때문이고 혹시나 잘못 될까봐.. 혹은 이 문제를 고치면 분명 영향을 받을수밖에 없기 때문에 알면서도 고치지 않고 있기 때문입니다.
스킨, 플러그인 등 각 개발자는 자신이 만든 것들에 대해 보안 점검을 해보시기 바라며, 이를 사용하시는 분들도 사용에 주의하시기 바랍니다.
제작의뢰 또한 이러한 보안문제를 잘인식하고 대응이 가능한 개발자에게 맡기시기 바랍니다.
댓글 21개
베스트 댓글
게시글 목록
| 번호 | 제목 |
|---|---|
| 1717629 | |
| 1717626 | |
| 1717625 | |
| 1717621 | |
| 1717619 | |
| 1717611 | |
| 1717610 | |
| 1717609 | |
| 1717607 | |
| 1717601 | |
| 1717598 | |
| 1717591 | |
| 1717590 | |
| 1717583 | |
| 1717575 | |
| 1717572 | |
| 1717568 | |
| 1717566 | |
| 1717549 | |
| 1717545 | |
| 1717533 | |
| 1717512 | |
| 1717511 | |
| 1717508 | |
| 1717495 | |
| 1717479 | |
| 1717473 | |
| 1717470 | |
| 1717463 | |
| 1717452 |
댓글 작성
댓글을 작성하시려면 로그인이 필요합니다.
로그인하기