Защита от отправки POST запроса со стороннего сайта
Я так понимаю, что вам надо запретить отправку POST'ом данных из всех форм, кроме расположенной у вас на сайте.
@SpaceBike выше почти правильно вам указал, что сделайте скрытое поле, значение которого будет генерироваться PHP в зависимости от пришедших параметров пользователя (HTTP-заголовки, Cookie, User-Agent и т.д.). Туда же можно добавить некую "соль" - случайно сгенерированный параметр, но его надо будет хранить, чтобы использовать потом.
В форму:<input
	type='hidden'
	name='security'
	value='<?php
		echo md5(
			$_SERVER['REMOTE_ADDR'] .
			$_SERVER['HTTP_USER_AGENT']
		);
	?>'
/>
В обработчике POST-запросов:<?php
	$valid = md5(
			$_SERVER['REMOTE_ADDR'] .
			$_SERVER['HTTP_USER_AGENT']
		);
	if($POST['security'] == $valid) {
		// хороший
	} else {
		// плохой
	};
?>
Таким образом, чтобы отправить POST-запрос с внешнего сайта или автоматическим скриптом, им надо будет эмулировать браузер: скачать страницу с вашего сайта, взять скрытые параметры (их может быть несколько) и отправлять свои запросы с ними. На моей практике 95% автоматических скриптов этого не делают. Понятно, что это не идеальная панацея. Можно добавить некий скрытый параметр через Javascript, тоже каким-нибудь мудрёным алгоритмом. Автоматика вряд ли будет исполнять js в момент скачивания, а если будет, то защищаться надо будет другой проверкой на робота.
Вот у вас есть форма<html>
<form>
блаблабла...
<input type = 'hidden' name 'security' value = '<?php echo md5('site.ru'.$config->securitykey) ?>' />
блаблабла
</form>
</html>
А потом проверяешь:<?php
if($POST['security'] == md5('site.ru'.$config->securitykey)) {
 echo 'Всё норм:)';
} else die('Всё плохо:C');
?>