PHP'nin file_get_contents önlemek için nasıl ()

4 Cevap php

Bu gibi benim php sayfa döner tek bir veri:

<?php
  //...
  echo "json string";
?>

ama başkasının kullanımı file_get_contents () benim veri almak ve diğer web sitesi kullanmak için.

herkes ben böyle birşey önlemek için ne yapabilirim bana söyleyebilir.

i dont know else.but şey yankı isteğin etki alanı adı alabilirsiniz eğer ben düşünün

fonksiyon isteğin etki elde name.and isteği bir sunucu tarafından gönderilen eğer, buna

yararsızdır olacaktır. Benim İngilizce kuşkularını ifade etmeye, lütfen ayı, kötüdür.

4 Cevap

Sen istemci adresi adresini almak için $ _SERVER ['REMOTE_ADDR'] kullanabilirsiniz. Ayrıca $ _SERVER ['HTTP_REFERER'] kontrol ve dış isteklerini bu şekilde engellemek, ancak daha az güvenilir olabilir. Deneyebilirsiniz $_SERVER içeren birkaç başka teknikler muhtemelen var.

Sizin burada yokuş yukarı bir mücadele. Ben json-cevap serverside işlemi kullanıcıların tarayıcılarda javascript yoluyla tüketilen ediliyor varsayarak yaşıyorum ... öyle şifrelemek için kolay bir yolu yoktur. Sen xspf önlemek için kullanılan bazı teknikler deneyebilirsiniz (bkz: http://en.wikipedia.org/wiki/Cross-site_request_forgery). Eğer müşteri başına uniq bazı oturum belirteci iletmekten istemci geliştirdi Eğer sorunun bazı azaltabilir. Ancak, şans kim verilerinizi çalmak bu ajax tip şey bir tür olduğunu varsayarak ... Eğer bir yerde ne koymak mekanizması çıkaracağım rakam vardır. Onun bir sunucu-sunucu şey sonra SLI uzaktan ip dayalı bazı kısıtlamalar yardımcı olacağını kurma, artı API kimlik doğrulama belirteçleri çeşit kurma, bahseder gibi daha da yardımcı olacaktır Eğer (bazı noktalardaki oauth bakınız)

. Ayrıca apache blok ile htaccess kullanarak verebilir sayfasına her türlü dış talep bu kadar dahili olarak adlandırılan almak ya da etki alanından değil, her isteği blok halinde:

Google search thingie

EDIT
You could also use some php file which includes the file which can not be read. So for example you have file.php:

<?php
 $allowedFiles[] = 'somefile.php';
 $allowedFiles[] = 'someotherFile.php';
 $allowedFiles[] = 'jsonReturnFile.php';
 if(in_array($_GET['file'], $allowedFiles)){
  include( "include/".$_GET['file'] );
 }
?>

Sonra o dosya üzerinde () _contents almak ve bir RewriteRule yazabilirsiniz dosya_ izin verebilirsiniz. Include / klasörüne herhangi bir isteği izin vermemek için htacces.

RewriteRule include* - [F,NC]

O dizine bir talep ya da dizinde herhangi bir dosya için 403 yasak hatası dönecektir.

? File.php file = jsonReturnFile.php & someothherParamReadByJsonFile = 1: Sonra böyle bir şey için size JSON istek yapabilirsiniz

Birisi JSON dosyası için onlar yasak hatası alıyorum ve include.php için dosya içeriğini elde edecek dosya içeriğini almaya çalıştığında ve bir şey YARARLI dönmeyecektir.

Sen JSON çıkışını kullanıyor sayfanızda belirteci çeşit üretmek ve JSON jeneratör geçerli bir belirteç ile birlikte sürece çalışmak reddeder yapabilir.