master
parent
ef4061a4c4
commit
ef818c928c
2 changed files with 326 additions and 42 deletions
File diff suppressed because one or more lines are too long
@ -1 +1,80 @@ |
|||||||
const {jsdomFromText, browser} = require("sdenv");
const {Script} = require("node:vm");
const fs = require("node:fs");
var baseUrl = 'https://dppt.hubei.chinatax.gov.cn:8443'
// TODO 需要文件内的 meta name="_y_ds" content 标签内容
var html = fs.readFileSync('./invoice-business.html', 'utf8').toString();
let js = fs.readFileSync('./chunk-npjg4qgmmrfrjl3r.js', 'utf8').toString();
// TODO:用户登陆token 测试时需要替换
var loginCookieStr = "oauth2_referer=dppt.hubei.chinatax.gov.cn; dzfp-ssotoken=558e20b0555441b6a723333ffd085253; SSO_SECURITY_CHECK_TOKEN=94a79332b58645359caca9381056c45e; c_time=12; lzkqow39189=f0c370b651604dc59b381360b69f2808; DTSwUOYx7MiWN=8df0aa147df27872b37be9efbcdfed1106b18489437dc5c53cae011c8c711192; lzkqow38189=1726977103530; MKls83gqduGS=dd85896203ee8ae2b020201604f5ec10842e240c4b23ea7e958edce788dfd18dc591c01ffe9bba1fd84cd93ba12560e3"
async function get_los(url, param) {
console.time('js执行时长')
const [jsDom, cookieJar] = jsdomFromText({
url: `${baseUrl}/invoice-query/invoice-query`,
referrer: baseUrl,
userAgent: 'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/127.0.0.0 Safari/537.36',
contentType: "text/html",
runScripts: "outside-only", // runScripts: 'dangerously'/'outside-only'
})
// 加载dom
let dom = await jsDom(html);
const window = dom.window
// 设置 cookie
for (let cookie of loginCookieStr.trim().split("; ")) {
cookieJar.setCookieSync(cookie, baseUrl);
}
browser(window, 'chrome');
// 加载js
let script = new Script(js);
let internalVMContext = dom.getInternalVMContext();
// 执行 js
script.runInContext(internalVMContext, {timeout: 1000});
if (window.$dunm.$byno) {
window.$dunm.$byno();
}
let los = window[window["_d_ts"]](url, param);
console.log('js执行完成,返回结果 ',los )
// 关闭
dom.window.close()
console.timeEnd('js执行时长')
var getPublicKey = await fetch(`${baseUrl + los.hurl}`, {
"headers": {
"accept": "*/*",
"accept-language": "zh-CN,zh;q=0.9",
"cache-control": "no-cache",
"content-type": "text/plain;charset=UTF-8",
"lzkqow23819": `${los.hd}`,
// "pragma": "no-cache",
// "sec-ch-ua": "\"Not)A;Brand\";v=\"99\", \"Google Chrome\";v=\"127\", \"Chromium\";v=\"127\"",
// "sec-ch-ua-mobile": "?0",
// "sec-ch-ua-platform": "\"Linux\"",
// "sec-fetch-dest": "empty",
// "sec-fetch-mode": "cors",
// "sec-fetch-site": "same-origin",
// "sso_security_check_token": "94a79332b58645359caca9381056c45e",
"x-requested-with": "XMLHttpRequest",
"cookie": cookieJar.getCookieStringSync(baseUrl),
// "Referer": "https://dppt.hubei.chinatax.gov.cn:8443/invoice-business?ruuid=1726970597058",
"Referrer-Policy": "strict-origin-when-cross-origin"
},
"body": "",
"method": "POST"
});
console.log('测试getPublicKey请求', await getPublicKey.json())
}
var url = `/sqlz/cssSecurity/v1/getPublicKey?t=${new Date().getTime()}`
// TODO:如果有 param 加密后得到 enParam
var enParam = {}
get_los(url, enParam);
|
const {jsdomFromText, browser} = require("sdenv"); |
||||||
|
const {Script} = require("node:vm"); |
||||||
|
const fs = require("node:fs"); |
||||||
|
|
||||||
|
var baseUrl = 'https://dppt.hubei.chinatax.gov.cn:8443' |
||||||
|
// TODO 需要文件内的 meta name="_y_ds" content 标签内容
|
||||||
|
var html = fs.readFileSync('./invoice-business.html', 'utf8').toString(); |
||||||
|
let js = fs.readFileSync('./chunk-npjg4qgmmrfrjl3r.js', 'utf8').toString(); |
||||||
|
|
||||||
|
// TODO:用户登陆token 测试时需要替换
|
||||||
|
var loginCookieStr = "tpass_p3d8j63p8b6p4bbab8dca4832a7fj9cc=eyJhbGciOiJIUzUxMiJ9.eyJsb2dpbl91c2VyX2tleSI6ImJjNzUxNmI4NWI0NjRiZjlhMDJlNzg2NWIxZmViMGE3In0.xMmdn82GoF9NH8ldYx5mCrHFZhP13041_34uZ51kF9INM7MB33rARWCqhCZiqNZUKwB1WkTH5jDIZLwh_bRYyw; sensorsdata2015jssdkcross=%7B%22distinct_id%22%3A%221920330690e83a-0f487f8b21c83b8-26001151-3153384-1920330690f1823%22%2C%22first_id%22%3A%22%22%2C%22props%22%3A%7B%22%24latest_traffic_source_type%22%3A%22%E7%9B%B4%E6%8E%A5%E6%B5%81%E9%87%8F%22%2C%22%24latest_search_keyword%22%3A%22%E6%9C%AA%E5%8F%96%E5%88%B0%E5%80%BC_%E7%9B%B4%E6%8E%A5%E6%89%93%E5%BC%80%22%2C%22%24latest_referrer%22%3A%22%22%7D%2C%22identities%22%3A%22eyIkaWRlbnRpdHlfY29va2llX2lkIjoiMTkyMDMzMDY5MGU4M2EtMGY0ODdmOGIyMWM4M2I4LTI2MDAxMTUxLTMxNTMzODQtMTkyMDMzMDY5MGYxODIzIn0%3D%22%2C%22history_login_id%22%3A%7B%22name%22%3A%22%22%2C%22value%22%3A%22%22%7D%2C%22%24device_id%22%3A%221920330690e83a-0f487f8b21c83b8-26001151-3153384-1920330690f1823%22%7D; tpass_mcsc7e2ssscb4sfmbsmas35sass2753b=eyJhbGciOiJIUzUxMiJ9.eyJsb2dpbl91c2VyX2tleSI6Ijk3ZjQ1NjU5MzA4ODRhNmFiOWIxMjNhZDY5MDdkYTU5In0.NABIuYcca0UKpWOwvjiut7f3yn-tIIGZyBBni7S1jFAoaRR_kaH8CTZLxSxfc6-Q6n5hcG1l94prwDFGgzZWYw; tpass_k238ck9eedkb48a9a5d7k5c2c5kkka58=eyJhbGciOiJIUzUxMiJ9.eyJsb2dpbl91c2VyX2tleSI6ImZkZTE4NTFkZGJhNDQ0MWE5ZWJlMWFjODU5NTNiNjM0In0.qHK5SMznOicFnrhi-1MnF16y2QypCSNLtbi3KE2pD1kyz4yRpLE8Fm4aHQMJ5hMa5aO1ibB-iQ-npD7QkoP3qA; tpass_te95ftefe59243cbafta4fb82bbtfcte=eyJhbGciOiJIUzUxMiJ9.eyJsb2dpbl91c2VyX2tleSI6ImViYTMzNDVhYTU0NjQ0NWZhOTdlYmViY2Q3MWNiNWQ4In0.Rk1-kzwo4fneL4FapgQzhzxC-vBVu2zpLHQVfnylQ88x6Ik5QNt3PuyfmqLdoenoR7y69BgAOM3GvLi_KFcsoA; oauth2_referer=etax.henan.chinatax.gov.cn; tpass_q4q6b8aa469v4369ae7483c4vb45cvca=eyJhbGciOiJIUzUxMiJ9.eyJsb2dpbl91c2VyX2tleSI6Ijg3MWNhNzIyMmRmZjQ1YzQ4YmFjYzViMDExYTY1MjU2In0.rUzqjvnFTAwRxRa49yeiPWqHWNF8WRmsKPayVfGRLuMja5huBOmlpHc-kEXBiGh43ei3t-ZbT7EcvGRga0aZkQ; tpass_mb29dc78543X4X769Hd7d8a35Hdd5236=eyJhbGciOiJIUzUxMiJ9.eyJsb2dpbl91c2VyX2tleSI6IjgxYTYwZjIxZmMwZTRlMDY5NTFkNDI1YWUwOWM3MjFjIn0.V1-LfcMe6VM9W4q_F15gqOxNbA2jRLRVpCml0WFvKTYAGdFqsi3JEgGBvMCL0SEkAOSVhGIn1A9ILjCAuiJ_hg; tpass_c5djdncfa7nj4n2cajna2j68cndbj2fc=eyJhbGciOiJIUzUxMiJ9.eyJsb2dpbl91c2VyX2tleSI6ImI1NzM2MjUwMDE5MDQyMTNiYzViNmQ0NGI1MGRlMTZlIn0.Es7Q_0jUPcvGddK90anCqeEIBjtl52YZ3669quo27iVjnObAt580ZEHJPjCSLw9vu3HAtPY2SkjYuquc0tItqA; tpass_tct8zta97w6c46zdt9zc2648227df5z2=eyJhbGciOiJIUzUxMiJ9.eyJsb2dpbl91c2VyX2tleSI6IjZkZTk0MTNjNDEzMzRjZmNhZjMzNTk2MWFmMjA0MzM0In0.eLcfe293IH6srCzt0boIzD-XlzRRi9lslNDysRkLRcYLr1cAT8CUrtP1mWSSwRcmuTnvZavCVGCdm0p6kgtpNw; tpass_ue7c9954acea492784ac6g78939gc2e9=eyJhbGciOiJIUzUxMiJ9.eyJsb2dpbl91c2VyX2tleSI6ImM4Y2Y1ZGZkYjJkMTQ0NGJiYjM0NGM1ZGJjZDlhY2UwIn0.dfWdZX2tAHcB5Xgb36Y5WQJabicYJYoURhAhWzKu4cSklCYc1lK6-fjbTbiRUNmW3hAQ0lUDUkH3DHVVTuvOjA; tpass_x774e745d5k24ex5a7kkk375x933f654=eyJhbGciOiJIUzUxMiJ9.eyJsb2dpbl91c2VyX2tleSI6IjM0NjljNWY5MThkZTQ4M2JiY2QwNDcyMjgwMzgwZWFkIn0.NKypnkLFaewOcawUAg_fZQdbFAbgFU1Nqj3ibv3FumIKIW6AZXiD7c0ASR16aTa4B4XUBjrysQiXrHksxRX-OQ; tpass_b6edq5qqc5cb4c3288q6aq6fab5qc3b4=eyJhbGciOiJIUzUxMiJ9.eyJsb2dpbl91c2VyX2tleSI6ImI1NzZiNjM2MjBhMjQyZTFhOWZhMWEzNzhkNWQ1ZTk4In0.C7fqU_7M_SwxCqcPiTymLEKnt3vrJtwaqYpoEw2yc20eiMLdwpOPDpsExwmBArt7bC33Db1bIqXhSm0teFNkXA; znhd-ssotoken=40149259f4b148b995b5cc0c6cdef254; ZNHD_SECURITY_CHECK_TOKEN=fad4d3a5402d490b97f826fcbd379cfa; lzkqow39189=bd7da168fed040cba393a151210941f1; DTSwUOYx7MiWN=e99a4b98bd841c1526b923944445bb11a77b6cb5dd667c162ee6b72f6abd1b04; dzfp-ssotoken=0e0b7b31c58c47efa45f832065202589; SSO_SECURITY_CHECK_TOKEN=e0018d9c9d4348cab0d9d1d66ee2a228; c_time=12; lzkqow38189=1727056999652; MKls83gqduGS=572347f54997a95d9e192e40cdc4712b446ed26ffd9c2f1f1851840deab76eaec468d41fefd80c9e20392d9b70c741ae" |
||||||
|
|
||||||
|
async function get_los(url, param) { |
||||||
|
console.time('js执行时长') |
||||||
|
const [jsDom, cookieJar] = jsdomFromText({ |
||||||
|
url: `${baseUrl}/invoice-query/invoice-query`, |
||||||
|
referrer: baseUrl, |
||||||
|
userAgent: 'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/127.0.0.0 Safari/537.36', |
||||||
|
contentType: "text/html", |
||||||
|
runScripts: "outside-only", // runScripts: 'dangerously'/'outside-only'
|
||||||
|
}) |
||||||
|
// 加载dom
|
||||||
|
let dom = await jsDom(html); |
||||||
|
const window = dom.window |
||||||
|
|
||||||
|
// 设置 cookie
|
||||||
|
for (let cookie of loginCookieStr.trim().split("; ")) { |
||||||
|
cookieJar.setCookieSync(cookie, baseUrl); |
||||||
|
} |
||||||
|
|
||||||
|
browser(window, 'chrome'); |
||||||
|
// 加载js
|
||||||
|
let script = new Script(js); |
||||||
|
let internalVMContext = dom.getInternalVMContext(); |
||||||
|
// 执行 js
|
||||||
|
script.runInContext(internalVMContext, {timeout: 1000}); |
||||||
|
|
||||||
|
if (window.$dunm.$byno) { |
||||||
|
window.$dunm.$byno(); |
||||||
|
} |
||||||
|
|
||||||
|
let los = window[window["_d_ts"]](url, param); |
||||||
|
|
||||||
|
console.log('js执行完成,返回结果 ',los ) |
||||||
|
// 关闭
|
||||||
|
dom.window.close() |
||||||
|
console.timeEnd('js执行时长') |
||||||
|
|
||||||
|
var getPublicKey = await fetch(`${baseUrl + los.hurl}`, { |
||||||
|
"headers": { |
||||||
|
"accept": "*/*", |
||||||
|
"accept-language": "zh-CN,zh;q=0.9", |
||||||
|
"cache-control": "no-cache", |
||||||
|
"content-type": "text/plain;charset=UTF-8", |
||||||
|
"lzkqow23819": `${los.hd}`, |
||||||
|
// "pragma": "no-cache",
|
||||||
|
// "sec-ch-ua": "\"Not)A;Brand\";v=\"99\", \"Google Chrome\";v=\"127\", \"Chromium\";v=\"127\"",
|
||||||
|
// "sec-ch-ua-mobile": "?0",
|
||||||
|
// "sec-ch-ua-platform": "\"Linux\"",
|
||||||
|
// "sec-fetch-dest": "empty",
|
||||||
|
// "sec-fetch-mode": "cors",
|
||||||
|
// "sec-fetch-site": "same-origin",
|
||||||
|
// "sso_security_check_token": "94a79332b58645359caca9381056c45e",
|
||||||
|
"x-requested-with": "XMLHttpRequest", |
||||||
|
"cookie": cookieJar.getCookieStringSync(baseUrl), |
||||||
|
// "Referer": "https://dppt.hubei.chinatax.gov.cn:8443/invoice-business?ruuid=1726970597058",
|
||||||
|
"Referrer-Policy": "strict-origin-when-cross-origin" |
||||||
|
}, |
||||||
|
"body": "", |
||||||
|
"method": "POST" |
||||||
|
}); |
||||||
|
|
||||||
|
console.log('测试getPublicKey请求', await getPublicKey.json()) |
||||||
|
} |
||||||
|
|
||||||
|
var url = `/sqlz/cssSecurity/v1/getPublicKey?t=${new Date().getTime()}` |
||||||
|
// TODO:如果有 param 加密后得到 enParam
|
||||||
|
var enParam = {} |
||||||
|
get_los(url, enParam); |
||||||
|
|
||||||
|
Loading…
Reference in new issue