2010-03-24 4 views
3

에 액세스 할 수 있습니다 :PHP는 독점적으로 내가 이것을 설명하는 방법을 잘 모르겠지만, 기본적으로 내가 PHP 클래스 파일을 SWF

class HelloHello { 

    public function getSomeData($input_parameter){ 
    // code to retrieve data from the database 
    } 

    public function deleteSomeData($input_parameter){ 
    // code to delete data from the database 
    } 
} 

이 클래스는 서버에와 연결하는 백엔드의 일부입니다 데이터베이스와 연결되어 있으며 프론트 엔드 SWF에서만 액세스 할 수 있습니다 (직접 액세스 할 수 없음). 이 클래스를 읽고 액세스하려면 Flex를 설치했습니다. 그러나 누군가가이 PHP 파일을 직접 호출하고 메소드에 액세스 할 수있는 스크립트를 개발하지 못하도록하는 방법은 무엇입니까? 예를 들어, 스크립트를 사용하여 데이터를 빠르게 자동화 된 방식으로 추가하거나 delete 메소드를 직접 사용할 수 있습니다.

이것은 합법적 인 우려입니까, 아니면 할 수 없나요?

답변

1

사용자가 플래시 응용 프로그램을 통해 볼 수있는 경우 사용자는 자신의 응용 프로그램에서이 응용 프로그램을 볼 수 있습니다. 당신은 쿠키와 인증 등을 소개함으로써 스크립트를 "보안"하려고 노력하는 엉망진창을 겪을 수 있습니다. 그러나 그것은 지저분 해요. 물론 그것은 돌아갈 수 있습니다.

다른 사람들이 귀하의 PHP 파일에 액세스하는 것을 막으려 고하는 대신, 더 안전하게 만드는 데 집중하십시오.

+0

글쎄, 그 못생긴 엉망은 우리 모두가 노력해야하는 프로그래밍의 좋은 표준입니다. 나는 쉬운 방법으로 현실 세계에서 그것을 자르고 싶지만 그렇게하지는 않는다. 그리고 "쉬운 일"이 아니라 "옳은 일"을하는 것으로부터 따뜻한 솜털 같은 느낌을받습니다. – brett

+0

그의 상황에 대해 생각한다면 실제로 그의 스크립트를 "안전"하게 만드는 방법은 없습니다 ... 사실 [예제 코드를 살펴보면] page.php? action = delete & database = application & table = users & rowid = 1 ... 데이터베이스를 노출 시키면 " 방어 "를 할 수 있습니다. 실제로, 그의 프로그램의 논리를 바꾸거나 ... [사용자 유효성 검사, 읽기/쓰기 권한, 추악한 것들]을 보안 수준보다 높게 설정하는 것이 더 좋습니다. 사용자는 결코 실행할 수 없어야합니다. 이 같은 SQL 직접 ... – Warty

+0

세션을 사용하여 설명하는 것을 막을 수 있습니다. 가짜 호출자 스크립트는 세션을 가지지 않으므로 실패합니다. 흠, 나는 내 자신의 질문에 답하는 것 같지만, 어떤 사람들은 사람들과 이야기하자. 나는 여기에있는 사람이 좋은 대답을 가지고 있다는 것을 알고 있습니다 ... 또한 데이터베이스 이름과 테이블 이름을 어떻게 알 수 있습니까? – brett

0

swf가 실행되는 URL을 알고 있다면 PHP에서 요청을 해당 URL로 제한 할 수 없습니까? 다른 모든 요청은 무시하십시오.

0

보안 및 인증을 추가하여 파일을 보호 할 수 있습니다. 그렇게 할 수 없다면 (공개 응용 프로그램입니다) 특정 상황을 방지 할 수있는 몇 가지 기술을 구현해야합니다. 동일한 IP에서 초당 스크립트를 너무 많이 호출하지 않도록하고 CAPTHCA를 추가하여 입력 된 데이터가 인간이 아닌 기계와 어쩌면 다른 기계에서.

0

사용하는 클라이언트가 실제로 데이터의 의도 된 수신자임을 확인하는 시도 응답 보안 시스템을 구현할 수도 있습니다. 그렇게하면 SWF에 비밀 키를 포함시킬 수 있습니다. PHP 응용 프로그램은 일회성 문자열을 보내고 클라이언트는 그 비밀에 따라 무언가를 수행 한 다음 응답을 보냅니다. 그러면 서버에서 유효성을 검사 한 다음 계속 실행할 수 있습니다.

여기에 대한 몇 가지 기본적인 수학적 토대에 대한 온라인 설명서가 있습니다.

관련 문제