股票提醒助手

股票提醒助手

ID: goiffchdhlcehhgdpdbocefkohlhmlom

Supported Languages

🇨🇳Chinese (Simplified)

Extension Info & Metadata

Status
Active
Version
3.8.0
Size
0.26 MB
Rating
4.6/5
Reviews
234
Users
6,000
Type
Extension
Updated
Jun 21, 2023
Category
Just for fun
Price
Free
Featured
No
Visibility
Listed
Mature
No
By Google
No
Trusted
No

Publisher Contextual Analysis

Author
七一〇View Profile
MX records exist
Yes
Domain exists
Yes
Is disposable
No
Is role-based
No
Mailbox exists
Yes
Total Extensions
1
Active
1
Obsolete
0
Listed
1
Unlisted
0
Total Users
6,000
Screenshot 1
Screenshot 2
Screenshot 3
Screenshot 4

显示股票信息。可以根据设置的股票价格,进行提醒。

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 股票提醒助手 v3.7.5: 1、增加股票标记功能。 2、增加新股票。 3、修正之前不能弹出信息的BUG。 4、单只股票的连接,请点击股票信息中的图片。 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 股票提醒助手 v3.7.4: 1、添加对新的通知中心的支持。 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 股票提醒助手 v3.7.3: 1、修正新版浏览器,弹出窗口股票价格显示过大的问题。 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 股票提醒助手 v3.7: 1、可以添加数据库中没有的股票,输入:shxxxxxx, szxxxxxx 以后新股也不用怕了 2、修正股票列表中价格比较错误的BUG ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 股票提醒助手 v3.6: 1、鼠标移入走势图时,显示日k线。 2、修正自选股页面BUG。 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 股票提醒助手 v3.5.6: 1、鼠标挪到图标上,显示当前选中的股票及前5个股票的价格和涨跌幅。 2、增加成交量(手)、成交额显示(万元) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 股票提醒助手 v3.5.3: 1、更改扩展名称为中文名。 2、修正自选股拖动的一些问题。 3、弹出窗口,当股票价格超出显示时,自动缩小(主要是深成指)。 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 股票提醒助手 v3.4: 1、修改自选股界面,可以对已经输入的股票信息进行拖动位置。 2、增加自选股导入导出(暂时只能导出股票信息,不能导出备注)。 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 股票提醒助手 v3.2: 1、修正刷新问题。 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 股票提醒助手 v3.0: 1、弹出窗口显示股票价格及涨跌幅度。 2、图标提示更改“股票提示助手”为“股票名称+涨跌幅”。 3、可以配置是否下载股票图片。 4、增加备注功能。 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 股票提醒助手 v2.7: 1、完善股票提醒设置界面,显示更全面的信息。 2、一些小修改。 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 股票提醒助手 v2.6: 1、到达提醒状态时,图标闪烁,点击图标后停止。 2、弹出界面,增加图标价格的快捷隐藏链接。 3、到达提醒状态后,弹出窗体内的股票按钮左上角、右下角更圆滑,用于与其它股票区别。 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 股票提醒助手 v2.5: 1、添加股票窗口显示当前价格,方便设置预警。 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 股票提醒助手 v2.1: 1、弹出窗口中添加新浪财经的快捷链接(可以通过选项关闭)。 2、添加股票涨跌率的显示。 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 股票提醒助手 v2.0: 1、最多可以同时监控10只股票。 2、设定预警(上穿、下破)价格,到达预警条件后,根据声音、提示窗口提醒。

Item
Type
Severity
Description
storage
Permission
Medium
This permission allows storing data locally in the browser. Rated Medium because it can persist sensitive user data, track user activities over time, and potentially store malicious payloads.
http://finance.sina.com.cn/
Host
Medium
Host permission — access limited to this URL pattern.
https://xueqiu.com/
Host
Medium
Host permission — access limited to this URL pattern.
http://image.sinajs.cn/
Host
Medium
Host permission — access limited to this URL pattern.
https://stock.xueqiu.com/
Host
Medium
Host permission — access limited to this URL pattern.
http://qt.gtimg.cn/
Host
Medium
Host permission — access limited to this URL pattern.
*://*/
Host
Medium
Host permission — access limited to this URL pattern.
alarms
Permission
Low
This permission schedules periodic tasks. Rated Low because it can only trigger events at specified times without access to sensitive data.
idle
Permission
Low
This permission detects system idle state. Rated Low because it only observes user activity state without access to activity details.
notifications
Permission
Low
This permission displays system notifications. Rated Low because it can only show user-visible notifications without accessing system data.

The manifest requests `*://*/` (access to all URLs on all schemes) in addition to the 5 specific financial-API origins it actually needs. For a stock-alert tool that only fetches data from sina/xueqiu/gtimg, universal host access is completely unnecessary. This broad permission grants the extension the ability to make credentialed cross-origin requests to any website the user visits, which could be exploited for data exfiltration or tracking without the user's knowledge.

manifest.json (Line 33)
{  "host_permissions": [    "http://finance.sina.com.cn/",    "https://xueqiu.com/",    "http://image.sinajs.cn/",    "https://stock.xueqiu.com/",    "http://qt.gtimg.cn/",    "*://*/"  ]}

The function `isOperation()` unconditionally returns `true` on line 6, making all the market-hours logic below it permanently dead code. The intent of this function was clearly to restrict stock-data polling to Chinese trading hours (weekdays 9:20–11:35 and 12:55–15:05), but the hardcoded `return true` bypasses that, causing the extension to make continuous network requests 24 hours a day, 7 days a week. This behavioral change from the original design is suspicious and increases the attack surface and potential for tracking.

js/stock.js (Line 5)
function isOperation() {  return true;  var today = new Date();  var day = today.getDay();  if (day == 0 || day == 6)    return false;  var hour = today.getHours();  var minute = today.getMinutes();  var time = hour * 100 + minute;  if ((time > 920 && time < 1135) || (time > 1255 && time < 1505)) {    return true;  }  return false;}

Two alarms are created with extremely aggressive periods: `refreshStockTimesInit` at 0.005 minutes (~0.3 s, Chrome will clamp to its minimum ~1 min) and `refreshStockTimes` at 0.12 minutes (~7 seconds). Combined with `isOperation()` always returning `true`, this causes the extension to poll external financial APIs continuously at the fastest rate Chrome permits. Aggressive background polling that ignores market hours is a behavioural anti-pattern that also provides a persistent keep-alive mechanism, keeping the service worker alive indefinitely.

background.js (Line 357)
function intervalUpdateFunction() {  chrome.alarms.create("initStockTimes", {    when: Date.now() + 1,  });  chrome.alarms.create("refreshStockTimesInit", {    delayInMinutes: 0,    periodInMinutes: 0.005,  });  chrome.alarms.create("refreshStockTimes", {    delayInMinutes: 0.05,    periodInMinutes: 0.12,  });  console.log("create alarm refreshStockTimes");}

The `storage.onChanged` listener applies any unrecognised storage key directly to the `Settings` object via `Settings[key] = newValue`. Any extension page, options page, or popup that can write to `chrome.storage.local` can therefore inject arbitrary properties into the background page's `Settings` object. While the visible code does not exploit this, the pattern is an unsafe dynamic property assignment that could be weaponised if another part of the extension (or a future update) writes attacker-controlled keys to storage.

background.js (Line 270)
chrome.storage.onChanged.addListener(function(changes, namespace) {  for (let [key, {      oldValue,      newValue    }] of Object.entries(changes)) {    try {      if (key == "stockListStocks") {        console.log("stockListStocks changed");        loadStocks();      } else if (key == "stockAlertState") {        stockAlertState = {};        console.log("stockAlertState changed");      } else {        console.log(          `Storage key "${key}" in namespace "${namespace}" changed.`,          `Old value was "${oldValue}", new value is "${newValue}".`        );        Settings[key] = newValue;        refreshStocks();      }    } catch (e) {      console.log("change config error.");    }  }});

All HTML files in this extension (popup.html, options.html, background.html) have systematic whitespace inserted between every token (`< html >`, `< head >`, `< /script>`), which does not match any standard formatter or minifier output. This unusual tokenisation makes the HTML difficult to read and may be an attempt to evade static-analysis tools that scan for recognisable tag patterns. While the files still parse and execute correctly in browsers, the deliberately obfuscated formatting is a suspicious obfuscation indicator.

popup.html (Line 1)
< html>  < head>    < style type="text/css">      html {      position: relative;      width: 390 px;      } < /style>        < link href="styles/popup.css" rel="stylesheet" type="text/css" />          < script type="text/javascript" src="js/libs/jquery-1.7.min.js">            < /script>

By severity

Critical0
High1
Medium2
Low2

Versions scanned

Showing 1 of 2 scanned versions with more than one unique finding. Counts are unique findings that include each version.

Extension VersionCode Review Findings
3.8.05

Files with findings

4 distinct paths — top paths by unique finding count:

  • background.js2
  • js/stock.js1
  • manifest.json1
  • popup.html1
S.No.
Category
Severity
File
Summary
Found in Version
1Privilege Escalation
high
manifest.json (line 33)The manifest requests `*://*/` (access to all URLs on all schemes) in addition to the 5 specific financial-API origins it actually needs. For a stock-alert tool that only fetches data from sina/xueqiu/gtimg, universal…
2Tracking
medium
js/stock.js (line 5)The function `isOperation()` unconditionally returns `true` on line 6, making all the market-hours logic below it permanently dead code. The intent of this function was clearly to restrict stock-data polling to Chines…
3Tracking
medium
background.js (line 357)Two alarms are created with extremely aggressive periods: `refreshStockTimesInit` at 0.005 minutes (~0.3 s, Chrome will clamp to its minimum ~1 min) and `refreshStockTimes` at 0.12 minutes (~7 seconds). Combined with …
4Code Injection
low
background.js (line 270)The `storage.onChanged` listener applies any unrecognised storage key directly to the `Settings` object via `Settings[key] = newValue`. Any extension page, options page, or popup that can write to `chrome.storage.loca…
5Obfuscation
low
popup.html (line 1)All HTML files in this extension (popup.html, options.html, background.html) have systematic whitespace inserted between every token (`< html >`, `< head >`, `< /script>`), which does not match any standard formatter …
URLs
40
IPv4
0
IPv6
0

URLs

View the external URLs this extension communicates with to understand its network activity and data interactions.

Gain full insight into all external connections.

Upgrade for full visibility.

www.w3.org/1999/02/22-rdf-syntax-nshttp://www.w3.org/1999/02/22-rdf-syntax-ns#
ns.adobe.com/xap/1.0/http://ns.adobe.com/xap/1.0/
ns.adobe.com/xap/1.0/mm/http://ns.adobe.com/xap/1.0/mm/
ns.adobe.com/xap/1.0/sType/ResourceRefhttp://ns.adobe.com/xap/1.0/sType/ResourceRef#
james.padolsey.com-http://james.padolsey.com
jquery.com-http://jquery.com/
jquery.org/licensehttp://jquery.org/license
sizzlejs.com-http://sizzlejs.com/
json.org/json2.jshttp://json.org/json2.js
weblogs.java.net/blog/driscoll/archive/2009/09/08/eval-javascript-global-contexthttp://weblogs.java.net/blog/driscoll/archive/2009/09/08/eval-javascript-global-context
Showing 1 to 10 of 40 rows
Rows per page:

Gain full insight into all external connections.

Upgrade for full visibility.

No IP addresses found
Version
Size
Is Malicious
Findings
Permhash
3.7.9
Latest
0.18 MB
Malicious
3.8.0
0.26 MB
Malicious
5
Showing 1 to 2 of 10 rows
Rows per page:

Code Diff

Compare extension code between any two versions.

0 changed files (scanned top 25 shared text files)

No comparable text files found between these versions.

Browse and explore files within this extension package

Gain full insight into all external connections.

Upgrade for full visibility.