使用迅捷PDF編輯器試用版新建空白頁測試


找到屬性-動作-打開頁面

在編輯動作列表里添加JavaScript測試腳本
腳本內容:
app.alert('XSS123');


確定后選保存帶水印版即可

測試結果
chrome瀏覽器

Edge瀏覽器

QQ瀏覽器

火狐瀏覽器未執行

火狐瀏覽器這里后來發現點情況:
正常跟上面那樣是不會執行js代碼,但如果在文檔屬性-JavaScript里添加彈窗代碼也會執行了,並且會把兩處的都執行




PS:經過測試發現,火狐瀏覽器對於只在文檔屬性里添加的JavaScript代碼和兩處同時添加的會執行,只在屬性動作里添加的不會執行(包括后面頁面添加也不會執行)
IE瀏覽器提示下載,沒直接打開

連迅捷PDF編輯器打開也會彈窗

下面將PDF文件嵌入html文件中運行看看
html代碼如下
<html> <body> <object data="test.pdf" width="100%" heigh="100%" type="Application/pdf"></object> </body> </html>
效果是同樣的

如果pdf文件有多個頁面的,可以在對應的頁面動作里編輯屬性添加JavaScript代碼,這樣打開瀏覽到該頁面時也會執行

修復建議
1.作為網站管理員或開發者,可以選擇強迫瀏覽器下載 PDF 文件,而不是提供在線瀏覽等,或修改 Web 服務器配置的 header 和相關屬性
2.使用第三方插件解析pdf,不用chrome自帶的pdf解析就行,https://github.com/adobe-type-tools/cmap-resources
參考:
