校務行政系統
跳至導覽
跳至搜尋
| 校務行政系統 | |
|---|---|
| 開發者 | 亞昕資訊股份有限公司 |
| 首次開放 | 2020年 |
| 原始碼 | 不開源(似乎) |
| 目前版本 | 未知 |
| 程式語言 | C++、C# (ASP.NET) |
| 作業環境 | Chrome |
| 授權條款 | All Rights Reserved |
史上最慢的系統
更新[編輯]
系統於2024/7/21更新,加上可更改密碼的功能。
工程師版本(外掛版) [編輯]
幫你修正讓這個系統更好用一點,選自己喜歡的用,不是廣告!!!
KnowScratcher - Better CYSH System[編輯]
KnowScratcher - Better CYSH System
技術紀載[編輯]
沒有破解做不到[編輯]
- 使用外部圖片
- 連接外部網站
- 使用外部檔案
JQuery版本[編輯]
3.6.1
CSP[編輯]
default-src 'self'; connect-src 'self'; font-src 'self' data:; frame-src 'self' blob: data:; img-src 'self' blob: data:; media-src 'self'; object-src 'self' blob: data:; script-src 'self' blob: data: 'unsafe-inline' 'unsafe-eval' https://accounts.google.com/; style-src 'self' 'unsafe-inline'; frame-ancestors 'self' ;
平均載入時間[編輯]
3.5秒
閒置自動登出[編輯]
20分鐘
可使用resetTimer();來防止(如果你能access的話)
或是呼叫"compositionupdate"的事件也可以觸發
相關程式碼寫於ASLoadProgress.js
event listener: ASLoadProgress.js
237 235|window.onmousemove = resetTimer;
238 236|window.onkeypress = resetTimer;
239 237|window.addEventListener("compositionupdate", resetTimer);
resetTimer: ASLoadProgress.js
323 323|function resetTimer() {
324 324| console.log("resetTimer");
325 325| window.top.clearTimeout(ast);
326 326| var sessionTimeoutWarning = 20; //min
327 327| var sTimeout = parseInt(sessionTimeoutWarning) * 60 * 1000;
328 328| ast = window.top.setTimeout(logout, sTimeout);
329 329| var current = new Date();
330 330| if (((current.getTime() - aspostback.getTime())/60000)>15)
331 331| {
332 332| try {
333 333| var astimerclient = getXmlHttpRequestObject();
334 334| astimerclient.open("GET", encodeURI("AsCheck.ashx"), false);
335 335| astimerclient.send();
336 336| }
337 337| catch (e) {
338 338| }
339 339| aspostback = new Date();
340 340| console.log("AsCheck");
341 341| }
342 342| // 1000 milisec = 1 sec
343 343| }
登出方法[編輯]
轉網址至Login.aspx即可登出
完整相關程式碼[編輯]
230 230|function inactivityTime() {
231 231| var ast;
232 232| var aspostback = new Date();
233 233| //window.onload = resetTimer;
234 234| // DOM Events
235 235| window.onmousemove = resetTimer;
236 236| window.onkeypress = resetTimer;
237 237| window.addEventListener("compositionupdate", resetTimer);
238 238| //window.onmousedown = resetTimer; // catches touchscreen presses
239 239| //window.onclick = resetTimer; // catches touchpad clicks
240 240| //window.onscroll = resetTimer; // catches scrolling with arrow keys
241 241| resetTimer;
242 242|
243 243| function logout() {
244 244| //alert("閒置時間過久,請重新登入");
245 245| //window.location = "Login.aspx";
246 246| var pagename = "Login.aspx";
247 247| var arrPath = location.pathname.split('/');
248 248| if (arrPath.length > 0) {
249 249| if (arrPath[arrPath.length - 1].toLowerCase().indexOf('.aspx') > -1) {
250 250| pagename = arrPath[arrPath.length - 1].toLowerCase();
251 251| }
252 252| }
253 253| if (pagename.toUpperCase() != "LOGIN.ASPX") {
254 254| var asrelogintag;
255 255| var asreloginoutframe = window.top.document.getElementsByTagName('iframe');
256 256| while(asreloginoutframe.length > 0){
257 257| var ifinalframe = 0;
258 258| for(var ipopc = 0; ipopc < asreloginoutframe.length; ipopc++){
259 259| var poptmp = asreloginoutframe[ipopc].contentWindow.document.getElementById('asrelogin');
260 260| if(poptmp){
261 261| asrelogintag = poptmp;
262 262| break;
263 263| }
264 264| if(asreloginoutframe[ipopc].id == 'iframecontent'){
265 265| ifinalframe = ipopc;
266 266| }
267 267| }
268 268| asframetmp = asreloginoutframe[ifinalframe].contentWindow.document.getElementsByTagName('iframe');
269 269| asreloginoutframe = asframetmp;
270 270| }
271 271| var basrelogin = false;
272 272| if(window.top.document.getElementById('ReLogin_div')){
273 273| basrelogin = true;
274 274| }else{
275 275| asreloginoutframe = window.top.document.getElementsByTagName('iframe');
276 276| while(asreloginoutframe.length > 0){
277 277| var ifinalframe = 0;
278 278| for(var ipopc = 0; ipopc < asreloginoutframe.length; ipopc++){
279 279| var poptmp = asreloginoutframe[ipopc].contentWindow.document.getElementById('ReLogin_div');
280 280| if(poptmp){
281 281| basrelogin = true;
282 282| break;
283 283| }
284 284| if(asreloginoutframe[ipopc].id == 'iframecontent'){
285 285| ifinalframe = ipopc;
286 286| }
287 287| }
288 288| asframetmp = asreloginoutframe[ifinalframe].contentWindow.document.getElementsByTagName('iframe');
289 289| asreloginoutframe = asframetmp;
290 290| }
291 291| }
292 292|
293 293| if (asrelogintag) {
294 294| if(!basrelogin){
295 295| var asreloginchk;
296 296| var website = location.href;
297 297| website = website.substring(0, website.lastIndexOf('/') + 1);
298 298| try {
299 299| var asreloginclient = getXmlHttpRequestObject();
300 300| asreloginclient.onreadystatechange = function () {
301 301| if (asreloginclient.readyState == 4 && asreloginclient.status == 200) {
302 302| asreloginchk = asreloginclient.getResponseHeader("asui");
303 303| }
304 304| }
305 305| asreloginclient.open("GET", encodeURI(website + "AsCheck.ashx"), false);
306 306| asreloginclient.send();
307 307| }
308 308| catch (e) {
309 309| }
310 310|
311 311| if(!asreloginchk){
312 312| //ReloginWindow();
313 313| }
314 314| }
315 315| }
316 316| else {
317 317| alert("閒置時間過久,請重新登入");
318 318| window.top.location = "../Login.aspx";
319 319| }
320 320| }
321 321| }
322 322|
323 323| function resetTimer() {
324 324| console.log("resetTimer");
325 325| window.top.clearTimeout(ast);
326 326| var sessionTimeoutWarning = 20; //min
327 327| var sTimeout = parseInt(sessionTimeoutWarning) * 60 * 1000;
328 328| ast = window.top.setTimeout(logout, sTimeout);
329 329| var current = new Date();
330 330| if (((current.getTime() - aspostback.getTime())/60000)>15)
331 331| {
332 332| try {
333 333| var astimerclient = getXmlHttpRequestObject();
334 334| astimerclient.open("GET", encodeURI("AsCheck.ashx"), false);
335 335| astimerclient.send();
336 336| }
337 337| catch (e) {
338 338| }
339 339| aspostback = new Date();
340 340| console.log("AsCheck");
341 341| }
342 342| // 1000 milisec = 1 sec
343 343| }
344 344|};
隱藏物件[編輯]
格視為html selector
slogan[編輯]
#form1 > table > tbody > tr > td > div:nth-child(2)
修改密碼 [編輯]
#divsecrecy_outer_id
帳號資訊[編輯]
#divinfo_outer_id
操作手冊[編輯]
#divpaper_outer_id
更多工具 [編輯]
#divastools_outer_id
成年 [編輯]
#divadult_outer_id
綁定裝置[編輯]
#divprivacy_outer_id
iframe位置[編輯]
所有第三層頁面
好想吐血 [編輯]
- 這個系統引進jquery,但還是有很多時候是原始方法硬幹
- Javascript都亂放,一下放html裡一下放js檔案
- 等server回應真的TMD久
- 頭像是用fixed的方式定位
- 該flex的地方不flex,不該flex的地方flex
- 一下用css指定style一下用element.style
