Как ограничить загрузку только изображениями? - PullRequest
0 голосов
/ 05 декабря 2018

Я создал веб-сайт, предназначенный для обмена изображениями.

пользователь загружает изображение (файлы PNG или JPEG)

Я проверил тип файла в своем коде, так что если онне PNG или JPEG, он не будет загружен.

, но случилось то, что я обнаружил, что было загружено много файлов .php как-то !!

и взломали мой сайтв конце: (

Как я могу защитить свой сайт, но разрешить загрузку только реальных файлов изображений

Я использую ASP.net C #

Ответы [ 2 ]

0 голосов
/ 05 декабря 2018

Здесь ниже код будет работать для вас.Независимо от того, какие расширения вы принимаете системой, вы можете добавить к приему

asp:FileUpload ID="fileUploader" runat="server" accept=".png,.jpg,.jpeg,.gif" />

Я думаю, что это будет хорошо, если вы не собираетесь проходить такую ​​проверку,

<asp:FileUpload ID="fuImportImage" runat="server" />
<asp:RegularExpressionValidator ID="regexValidator" runat="server"
 ControlToValidate="fuImportImage"
 ErrorMessage="Only JPEG images are allowed" 
 ValidationExpression="(.*\.([Jj][Pp][Gg])|.*\.([Jj][Pp][Ee][Gg])$)">
</asp:RegularExpressionValidator>
0 голосов
/ 05 декабря 2018

Вы можете ограничить тип, используя атрибут «принять».Он проверит mime-тип файла.

<asp:FileUpload ID="FileUploadFileType" runat="server" CssClass="form-control" accept=".png,.jpg,.jpeg,.gif" />

К сожалению, он не идеален, и вам также нужно какое-то внутреннее решение.Поскольку вы все еще можете загружать руткит в виде файла .jpg, возможно, дополнительная проверка заголовков файлов была бы хорошей идеей.В идеале, вам нужно правильное решение для обнаружения руткитов, прежде чем принимать файл на сервер.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...