2012-03-08 4 views
1

Моя индексная страница (index.php? Profile = profilename_here) загружает содержимое в div, используя функцию jQuery load() в обычном режиме, и все работает нормально.Защита php при загрузке страницы с помощью функции загрузки. JQuery

$().ready(function() { 
    $('#details').load('pages/sidebar/details.php?profile=<?PHP echo $profile;?>').fadeIn(2000); 
}); 

то на моих страницах/sidebar/details.php У меня есть MySQL-запросы.

$result = mysql_query("SELECT * FROM public_profile WHERE username='$profile'") or die(mysql_error()); 

Все PHP материал является безопасным и я санировать все varibales как я должен быть .... но если кто-то должен был пойти на «страницы/боковой панели/details.php? Профиль =» и изменить профиль имя они будут воспитывать другие народы.

Можно ли проверить, была ли страница загружена .load(), а если нет, чтобы остановить загрузку страницы или выполнение скриптов?

+0

Возможно, вы можете использовать сеанс так, чтобы ваш details.php знал, если вы авторизованы как владелец профиля? – Damp

+0

это общедоступные страницы, и никто не вошел в систему, чтобы просмотреть эти данные. –

+2

Если профили являются общедоступными и вам не нужно регистрироваться в них, почему это важно, если они вытягивают другие профили? – jprofitt

ответ

3

Если вы хотите запустить код, когда страница запрашивается с использованием Ajax

if ($_SERVER['HTTP_X_REQUESTED_WITH'] === 'XMLHttpRequest') { 
    /* run this if requested by ajax */ 
} 

, к сожалению, это не делает его гораздо более безопасным, так как любой может использовать Dev-инструменты, такие как поджигатель, чтобы изменить этот адрес в код. Если вы хотите, чтобы текущий пользователь просматривал собственный профиль, вы можете хранить $profile в $_SESSION таким образом, чтобы у них не было прямого доступа к параметру URL.

Отметьте OWASP's SQL Injection Prevention Cheatsheet для некоторых методов для дезинфекции данных, хотя я не думаю, что есть PHP.

+0

ОК. Спасибо за вашу помощь. приведенный выше код был добавлен только для объяснения моего вопроса. я вполне уверен, что у меня есть действующий код, дезинфицированный и безопасный. –

+0

Чтобы быть в безопасности, я добавил ссылку на OWASP's SQL-код для предотвращения инъекций SQL, я уверен, что это поможет кому-то ... – JKirchartz