Могу ли я скрыть реальный путь изображения на странице PHP или использовать некоторое шифрование [чтобы зрители не могли видеть img src]?
[Я создал социальную сеть, где пользователь может обмениваться имиджем или нет! Изображения сохраняются не в базе данных.]]
я видел некоторую страницу PHP, показывающую изображение с такими данными [хотя я отправляю код VB.NET]
<data name="TrayIcon.Icon" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64"> <value> AAABAAEAICD/AAAAAACoCAAAFgAAACgAAAAgAAAAQAAAAAEACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AABnZEsAjnMTAKmFFAC7lBsAdWEhABstOgAfNE0ARlt0AG6DmABziJsAN0NTAEpRVABWW1wAS0ktAElj iwBPbpEAQ1yBADlPcwBdc4gAPT9CAEY6EABUeaoAWIO4AGWCqQBdd5sAPVV7AHWPlQB3jZ8Ae5GjACs0 PwAyJgUANTk6AFRphABbicEAZJLJAGGPxABjhroAdZClAHWIjgBne4wAZm9rABQWFQAwNDEANkpjAG2Y ................ </value> </data>
Вы можете создать страницу PHP, которая получит некоторые параметры и затем обработает ее. Как страница http://www.yoursite.com/pic.php?token=xxxxxxxxxxxx , здесь вы можете обработать токен, выполнить некоторую проверку подлинности и аутентификацию сеанса, а затем использовать функцию header (), чтобы направить изображение в браузер так что люди могут загрузить его, но не видят прямой путь pic. Надеюсь, это поможет вам.
Что значит скрыть путь изображения src? Если вы хотите, чтобы браузер пользователя отображал изображение, он обязательно должен получить доступ к данным, верно? Поэтому вы должны сообщить им адрес (если вы не встраиваете изображение на страницу в base64 или что-то в этом роде, но это не лучше). Но вы не контролируете браузер пользователя … возможно, он хранит изображение в файле, как кеш? Или, может быть, пользователь скроил его, чтобы делать то, что они хотели?
Одной из возможных мер защиты, чтобы сделать вещи сложнее было бы создать уникальную ссылку на изображение, которое будет работать только для одного запроса, при условии, что если пользователь будет смотреть на исходный код страницы и пытается использовать эту ссылку, то это не действительный больше. Но это не абсолютная защита.
Нет уверенного способа сделать то, что вы намерены; вы можете сделать это сложнее, но вы можете только надеяться, что ваши пользователи не будут достаточно умны, чтобы обойти защиту, потому что всегда будет какой-то способ.
Невозможно создать систему, которая полностью защищает ваши изображения от загрузки, из-за этих векторов атаки:
-Картинки на странице
-Интерпретация между сервером и клиентом (т.е. Wireshark)
-Посмотреть в кеше браузера