Нет, реферер не предсказуем. Вокруг этого нет определенных правил, и это может быть изменено. Кроме того, некоторые пользовательские агенты даже не отправляют.
К сожалению, схема signature_request не обеспечивает конфиденциальности данных (с помощью шифрования) или целостности источника, но вы получаете целостность данных, так что вы можете быть уверены, что в какой-то момент Facebook сгенерировал действительный подписанный запрос. Для проверки вам просто нужно проверить подпись. Это не гарантирует, что вы не станете жертвой повторной атаки, но я не думаю, что кто-либо когда-либо решал эту проблему.
Вы можете быть в состоянии сделать что-то со свойством "assign_at" как одноразовый номер, но я недостаточно протестировал, чтобы узнать, работает ли он правильно во всех запросах.