فقط می خواهم بررسی کنم که چگونه اسکریپت ها و پروژه های من آسیب پذیر هستند. از تحقیق وبلاگ و پاسخ متخصص، من متوجه شدم حمله و تزریق ممکن است بر اساس
- نوع فایل
- اظهارات sql
- دسترسی به پوشه تصویر در ریشه،
من مطمئن نیستم که چقدر من امن . لطفا راهنمایی کنید که من باید در اسکریپت های زیر برای بهبود امنیت اضافه کنم؟
200000) {
echo "فایل خیلی بزرگ است"؛
خروج ()؛
}
اگر ($ imageFileType! = "jpg" && $ imageFileType! = "png" && $ imageFileType! = "jpeg" && $ imageFileType! = "gif") {
echo "فقط jpg / png / gif تصویر!"؛
خروج ()؛
}
اگر ($ verifyimg ['mime']! = 'image / png' && $ verifyimg ['mime']! = 'image / jpg' && $ verifyimg ['mime']! = 'image / jpeg' && $ verifyimg ['mime']! = 'تصویر / gif ') {
اکو "تصویر معتبر نیست"؛
خروج؛
}
دیگر {
$ new_img = substr (md5 (time ())، 0، 10). '.' . $ img_ext؛
$ target_file = $ target_dir. $ new_img؛
move_uploaded_file ($ _ FILES ["file"]["tmp_name"]، $ target_file)؛
$ query = $ con-> prepare ('INSERT به اخبار (عنوان، محتوا، keytag، date، img) VALUES (: head،: content،: keytag،: date،: new_img)')؛
$ query-> bindParam (': new_img'، $ new_img)؛
}
}
اگر (خالی ($ _ FILES ['file']['name'])) {
$ query = $ con-> prepare ('INSERT to news (header، content، keytag، date) VALUES (: head،: content،: keytag،: date)')؛
}
$ query-> bindParam (': heading'، $ _POST ['heading'])؛
$ query-> bindParam (': content'، $ _POST ['content'])؛
$ query-> bindParam (': keytag'، $ _POST ['keytag'])؛
$ query-> bindParam (': date'، $ _POST ['date'])؛
اگر ($ query-> execute ()) {
اکو "به صورت موفقیت آمیز"؛
}؛
}
؟>
.htaccess
برای جلوگیری از دسترسی مستقیم
RewriteEngine در
RewriteCond٪ {HTTP_REFERER}! ^ http: // www .your-domain .com /.*$ [NC]
RewriteCond٪ {HTTP_REFERER}! ^ http: // www .your-domain .com $ [NC]
RewriteRule. * . (wav | swf | jpg | jpeg | gif | png | bmp | js | css) $ - [F,NC,L]
