導航:首頁 > 源碼編譯 > 源碼的消息屏蔽了中文角色的輸入

源碼的消息屏蔽了中文角色的輸入

發布時間:2022-11-07 17:34:54

❶ Microsoft visual c++彈窗

適用於 Linux 的 Windows 子系統中的 Visual Studio Code 伺服器使用本地 WebSocket WebSocket 連接與遠程 WSL 擴展進行通信。網站中的 javaScript 可以連接到該伺服器並在目標系統上執行任意命令。目前該漏洞被命名為CVE-2021-43907。

這些漏洞可以被用於:
本地 WebSocket 伺服器正在監控所有介面。如果允許通過 Windows 防火牆,外部應用程序可能會連接到此伺服器。
本地 WebSocket 伺服器不檢查 WebSocket 握手中的 Origin 標頭或具有任何身份驗證模式。瀏覽器中的 JavaScript 可以連接到該伺服器。即使伺服器正在監控本地主機,也是如此。
我們可以在特定埠上生成一個Node Inspector示例,它還監控所有介面。外部應用程序可以連接到它。
如果外部應用程序或本地網站可以連接到這些伺服器中的任何一個,它們就可以在目標計算機上運行任意代碼。
Visual Studio Code 庫是不斷更新的。我將使用一個特定的提交 ()。
$ git clone https://github.com/microsoft/vscode $ git reset --hard
我們可以使用 Code (lol) 來導航源代碼。事實上,我已經在 WSL 中為這個漏洞創建了具有相同擴展名的概念驗證。
Visual Studio Code在 WSL 內以伺服器模式運行,並與 Windows 上的代碼示例對話(我稱之為代碼客戶端)。這使我們可以在 WSL 中編輯文件和運行應用程序,而不需要運行其中的所有內容。
遠程開發架構
可以通過 SSH 和容器在遠程計算機上進行遠程開發。GitHub Codespaces 使用相同的技術(很可能通過容器)。
在 Windows 上使用它的方法:
1.打開一個WSL終端示例,在Windows上的代碼中應該可以看到遠程WSL擴展;
2.在 WSL 中運行code /path/to/something;
3.如果未安裝代碼伺服器或已過時,則會下載它;
4.VS Code 在 Windows 上運行;
5.你可能會收到一個 Windows 防火牆彈出窗口,用於執行如下所示的可執行文件:
伺服器的防火牆對話框
這個防火牆對話框是我執行失敗的原因。出現該對話框是因為 VS Code 伺服器想要監控所有介面。
從我信任的Process Monitor開始:
1.運行進程監控器;
2.在WSL中運行code .;
3.Tools > Process Tree;
4.我運行代碼(例如,Windows Terminal.exe)的終端示例中運行Add process and children to Include filte。
Procmon 的進程樹
經過一番挖掘,我發現了 VSCODE_WSL_DEBUG_INFO 環境變數。我只是在 WSL 中將 export VSCODE_WSL_DEBUG_INFO=true 添加到 ~/.profile 。運行伺服器後我們會得到額外的信息。
VSCODE_WSL_DEBUG_INFO=true
輸出被清理。
檢查命令行參數。
可以看到出現了WebSocket詞彙。
運行 Wireshark 並捕獲loopback介面上的流量。然後我再次在 WSL 中運行代碼。這次可以看到兩個 WebSocket 握手。
在 Wireshark 中捕獲的 WebSocket 連接
該運行中的伺服器埠是63574,我們也可以從日誌中看到。在 Windows 上的代碼客戶端中打開命令面板 (ctrl+shift+p) 並運行 > Remote-WSL: Show Log。
遠程 WSL:顯示日誌
最後一行有埠:在 http://127.0.0.1:63574/version 上打開本地瀏覽器。我們還可以看到從 Windows 上的 Code 客戶端到伺服器的兩個單獨的 WebSocket 連接。
伺服器是位於 /src/vs/server/.ts#L207 的 的一個示例。
它被 createServer 在同一個文件中使用,我們可以使用 Code (lol) 找到它的引用並追蹤到 remoteExtensionHostAgent.ts(同一目錄)。
可以根據注釋查看 main.js 內部。
打開文件,看到伺服器可以從傳遞給main.js的參數中獲得主機和埠。
main.js 被 server.sh 調用:
沒有 IP 地址傳遞給腳本,我認為這就是為什麼伺服器監控所有有趣的事情。port=0 可能告訴伺服器使用臨時埠,此信息來自同一目錄中的 wslServer.sh。
每次看到本地 WebSocket 伺服器時,都應該檢查誰可以連接到它。
WebSocket 連接不受同源策略約束,瀏覽器中的 JavaScript 可以連接到本地伺服器。
WebSockets 從握手開始,在跨源資源共享或 CORS 的上下文中它始終是一個「簡單」的GET 請求,因此瀏覽器不需要預先請求就可以發送它。
可以快速創建一個嘗試連接到特定埠上的本地WebSocket伺服器的測試頁面,將它託管在某個遠程位置(例如,S3 存儲桶)並在計算機上打開它。如果連接成功,就可以繼續操作了。
我還檢查了 Burp,在 Burp Repeater 中創建了 WebSocket 握手。將 Origin 標頭修改為 https://example.net。如果響應具有 HTTP/1.1 101 交換協議,那麼就可以繼續了。
在 Burp 中測試
注意,這只對本地主機伺服器有影響。這里的伺服器也對外公開,攻擊者不受瀏覽器約束。它們可以直接連接到伺服器並提供任何 Origin 標頭。
接下來是查看 Wireshark 中的流量,右鍵點擊之前的WebSocket握手GET請求,然後選擇 Follow > TCP Stream。我們將看到一個帶有一些可讀文本的屏幕。關閉它,只會看到這個進程的數據包,這允許我們只關注這個進程。
你可能會問為什麼我關閉了僅包含消息內容的彈出窗口,因為沒有用。根據 RFC6455,從客戶端到伺服器的消息必須被屏蔽。這意味著它們與一個 4 位元組的密鑰(也隨消息一起提供)進行了異或運算。Wireshark 在選擇時取消屏蔽每個數據包,但有效載荷在初始進程彈出窗口中顯示為屏蔽。所以我們將看到純文本的伺服器消息,而客戶端消息被屏蔽並出現亂碼。如果你點擊單個消息,Wireshark 就會顯示有效載荷。
我花了幾天時間對協議進行逆向工程。後來,我意識到只能在/src/vs/base/parts/ipc/common/ipc.net.ts 中看到協議的源代碼。
來自伺服器的第一條消息是 KeepAlive 消息。
在協議定義中,我們可以看到不同的消息類型。
在 /src/vs/platform/remote/common/remoteAgentConnection.ts 中,它在代碼的其他部分被稱為 OKMessage 和heartbeat。
客戶端在/src/vs/platform/remote/common/remoteAgentConnection.ts的中處理此問題。客戶端(Windows上的代碼)發送這個包,它是一個KeepAlive和一個單獨的認證消息。
最初,我認為長度欄位是 12 個位元組而不是 4 個位元組,因為其餘的位元組總是空的。然後我意識到只有常規消息使用消息 ID 和 ACK 欄位,而且我只看到了不規則的握手消息。
在修復之前,沒有勾選此選項。
注意:在 2021-11-09 更新之前(commit )客戶端沒有發送數據。但是,使用此提交,我們仍然可以在沒有此密鑰的情況下發送消息並且它會起作用。這是我們給伺服器簽名的內容,以檢查連接到正確的伺服器。
伺服器響應一個簽名請求。
另一個 JSON 對象:
伺服器已經簽名了我們在前一條消息中發送的數據,並用它自己的數據請求進行了響應。
客戶端驗證簽名的數據,以檢查它是否是受支持的伺服器。當創建我們的客戶端時,可以簡單地跳過。
使用options.signService.validate 方法,然後就會得到/src/vs/platform/sign/node/signService.ts。
vsda 是一個用 C++ 編寫的 Node 原生插件,將 Node 原生插件視為共享庫或 DLL。該插件位於 https://github.com/microsoft/vsda 的私有存儲庫中,根據https://libraries.io/npm/vsda/的說法,直到2019年左右,它都是一個NPM包。
它與 VS Code 客戶端和伺服器捆綁在一起:
Windows系統:
C:\Program Files\Microsoft VS Code\resources\app\node_moles.asar.unpacked\vsda\build\Release\vsda.node
伺服器(WSL):~/.vscode-server/bin/{commit}/node_moles/vsda/build/Release/vsda.node。
我找到了https://github.com/kieferrm/vsda-example,並通過一些實驗找到了如何使用它創建和簽名消息。
1.用msg1 = validator.createNewMessage("1234")創建一個新消息,輸入至少4個字元。
2.使用signed1 = signer.sign(msg1)進行簽名。
3.使用 validator.validate(signed1) 對其進行驗證,響應為「ok」。
需要注意的是,如果你創建了新消息,則無法再驗證舊消息。在源代碼中,每條消息都有自己的驗證器。
Linux 版本有符號,大小約為 40 KB。把它放到 IDA/Ghidra 中,應該就可以開始了。
我花了一些時間,想出了這個偽代碼。可能不太正確,但可以讓你大致了解此簽名的工作原理。
1.用當前時間 + 2*(msg[0]) 初始化 srand,它只會創建 0 到 9(含)之間的隨機數;
2.從許可證數組中附加兩個隨機字元;
3.從 salt 數組中附加一個隨機字元;
4.SHA256;
5.Base64;
6.???;
7.Profit。
僅從許可證數組中選擇前 10 個位置的字元,它總是 rand() % 10 ,但salt 數組翻了一番。
許可證數組的字元串如下所示:
salt 數組的前 32 個位元組(查找 Handshake::CHandshakeImpl::s_saltArray)是:
我從來沒有真正檢查過我的分析是否正確,不過這無關緊要,知道如何使用插件簽名消息,這就足夠了。
接下來,客戶端需要簽名來自伺服器的數據並將其發送回來,以顯示它是一個「合法」的代碼客戶端。
伺服器響應如下:
客戶端發送了如下消息:
提交應該匹配伺服器的提交哈希。這不是秘密。這可能是最後一個穩定版本提交(或最後幾個之一)。這只是檢查客戶端和伺服器是否在同一版本上。它也可以在 http://localhost:{port}/version 上找到,你的瀏覽器 JavaScript 可能無法看到它,但外部客戶端沒有這樣的限制。
signedData是對我們在前面消息中從伺服器獲得的數據進行簽名的結果。
Args是此消息中最重要的部分,它可以告訴伺服器在特定埠上啟動一個 Node Inspector 示例。
break: 啟動 Inspector 示例後中斷。
埠:檢查器示例的埠。
Env:傳遞給檢查器示例進程的環境變數及其值的列表。
Node Inspector 示例可用於調試 Node 應用程序。如果攻擊者可以連接到你計算機上的此類示例,那麼攻擊就成功了。2019 年,Tavis 發現 VS Code 默認啟用了遠程調試器。
整個設置旨在允許 Windows 上的代碼客戶端在 WSL、容器或 GitHub 代碼空間中進行遠程開發。這意味著它可以在遠程計算機上做任何想做的事情。
因此,如果網站可以連接到你本地的 WebSocket 伺服器並繞過 DRM,它就可以模擬代碼客戶端。它可以在你的系統上遠程執行代碼,並且不需要 Node Inspector 示例。
到目前為止,我們已經找到了兩種利用該系統的方法:
生成並連接到 Node Inspector 示例;
模擬代碼客戶端並使用自定義協議與遠程計算機交互;
Node Inspector示例
讓我們看看前面消息中的參數, /src/vs/server/.ts 在伺服器上處理它們。
介面類似於我們之前看到的 JSON 對象:
_updateWithFreeDebugPort檢查埠是否空閑,如果沒有,它將嘗試接下來的10個埠。最後一個空閑埠存儲在startParams.port中。
選擇的埠被發送回客戶端,所以我們知道去哪裡:
最後,它在 /src/vs/server/extensionHostConnection.ts 中調用con.start(startParams);。
這看起來很復雜,讓我們來分析一下:
1.Node Inspector 示例將監聽 0.0.0.0:debugPort,這很危險,如果用戶接受 Windows 防火牆對話框,它將在外部可用;
2.我們也可以注入 Inspector 的環境變數;
3.removeDangerousEnvVariables 方法不是安全過濾器,只是刪除 DEBUG、DYLD_LIBRARY_PATH 和 LD_PRELOAD 環境變數(如果存在)以防止崩潰。
什麼是Node Inspector?
它可以用來調試Node進程。有一些客戶端和庫支持這一點,但通常,我使用Chromium內置的專用節點DevTools (chrome|edge://inspect)。
連接到 Inspector 示例後,我們可以打開控制台並運行 require('child_process').exec('calc.exe');。盡管我們使用的是wsdl,但它仍然有效。
瀏覽器中的 JavaScript 無法連接到 Inspector 示例,客戶端使用另一個 WebSocket 連接與示例對話。但是,我們需要知道調試器會話 ID。
/json/列表
瀏覽器中的 JavaScript 可以發送此 GET 請求,但由於 SOP(響應沒有 Access-Control-Allow-Origin 標頭)而無法看到響應。其他客戶端則沒有這個限制,因為檢查器在外部可用,我們可以從外部連接到它。
現在,我創建了一個簡單的概念驗證:
1.打開一個網站並輸入埠(我們可以掃描它,但手動輸入它會更快)。
2.網站中的 JavaScript 完成握手。
3.我使用 /sign API 創建了一個 Node 應用程序,這樣就可以使用 vsda 插件。
4.一旦生成Node Inspector 示例,第二個 API 就會被 debugPort 調用。
5.使用 chrome-remote-interface 庫的 Node 應用程序連接到 Inspector 示例並運行 calc。
你可以通過以下鏈接看到源代碼:
https://github.com/parsiya/code-wsl-rce https://github.com/parsiya/Parsia-Code/tree/master/code-wsl-rce
模擬代碼客戶端
創建客戶端並使用協議連接到伺服器的代碼位於 VS Code GitHub 存儲庫中,這需要大量的復制/粘貼和解析,我只花了幾個小時。
如果要創建一個快速的概念驗證,應該滿足一些假設:
1.找到本地的 WebSocket 埠;
2.從外部連接到Node Inspector示例;
查找本地 WebSocket 埠並不難,從瀏覽器掃描本地伺服器並不是什麼新鮮事。伺服器也可以從外部使用,因此我們不受那裡的瀏覽器約束。
Chrome 限制不起作用,因為 WebSocket 伺服器需要一個網路伺服器來處理握手。我也很好奇 WebSocket 節流是 Chrome 特定的保護還是 Chromium 的一部分。
有趣的是,Chrome 瀏覽器有一個保護機制,可以防止惡意行為者暴力破解 WebSocket 埠,它在第 10 次嘗試後開始節流。不幸的是,這種保護很容易被繞過,因為擴展的 HTTP 和 WebSocket 伺服器都在同一個埠上啟動。這可用於通過向 img 標簽添加 onload 處理程序來檢查特定本地主機埠上的圖片是否存在來強制所有可能的本地埠。
也就是說,這是一個開發環境,用戶可能整天都在 WSL 中開發並且從不關閉他們的瀏覽器選項卡,因此如果他們打開我們的網站,我們就有可能找到它。
連接到Node Inspector示例是另一回事,我們無法從瀏覽器執行此操作,因此我們需要我們的伺服器可以訪問受害者的計算機。
第二種利用方法(模擬代碼客戶端)沒有這些限制,因為瀏覽器可以與本地伺服器通信並執行所有操作。它只需要我們對協議進行逆向工程並找出要發送的正確消息。
當你收到 WebSocket 升級請求時,請根據許可名單檢查 Origin 標頭。代碼客戶端在該標頭中發送 vscode-file://vscode-app,以便我們可以使用它來操作。
參考及來源:https://parsiya.net/blog/2021-12-20-rce-in-visual-studio-codes-remote-wsl-for-fun-and-negative-profit/

❷ 解決編譯android源碼後沒中文輸入法怎麼解決

解決編譯android源碼後沒有中文輸入法
編譯mmm packages/inputmethods/PinyinIME/,然後再make snod一下,重啟一下模擬器,問題解決

❸ 本人下載了一個源碼,但是源碼後台管理屏蔽了兩個功能,那位大蝦告訴下怎麼把屏蔽的內容補充上啊

1:要看什麼樣的語言
2:要看缺少什麼樣的功能

這兩個沒說清不好辦,網上有試用版或者免費版重要的功能給去掉了,估計補起來要非點兒時間,想使用全部的功能估計要付出點費用,買或者找人補。

❹ 為什麼QQ群屏蔽消息還能收到消息呢

是設置有問題,不然就算是屏蔽了群信息也是有提示的。點擊群設置,點查看群信息,點詳細提示,點接收並提示信息即可,如果還是不行,可能是QQ版本的問題,可以嘗試著下載一個版本試試。首先打開QQ,然後找到喜歡的QQ群或者需要屏蔽的群。不過還
1.打開QQ。
正常情況三天左右就恢復正常號。QQ是通過哪些條件判斷我們是群發的:同一IP短時間發送消息的頻率。同一個IP在一定時間內發送消息給好友的數量、別以為信息量大tx就捨不得浪費伺服器的硬碟空間來記錄你們這些無聊的舉動。根據登錄IP的地理

2.進入消息頁面。
QQ被封肯定是有人舉報,只要在群發信息時候沒人舉報,那QQ不會被封。避免被封注意以下幾點:1、不在群內成員正聊天的時候發消息。2、可以把自己群名片改成自己的產品,這樣不用群發,只要你聊天別人就知道你做什麼產品。3、不頻繁發放QQ群消

3.點擊右上角加號,選擇創建群聊。
當然不會如果你說話頻繁的話反而會增加此去群的活躍度如果此群有規定那就另當別論了

4.選中好友,立即創建之後,發送消息就可以了。
首先qq群里屏蔽群員發言是QQ群管理員和群主的權利,QQ群被屏蔽發言主要是聊天中發了一些違反群公告規定的內容,如刷屏,發廣告想要解除屏蔽可以找到屏蔽你的改管理員或者找群主進行解除屏蔽。

擴展閱讀,以下內容您可能還感興趣。
qq群發信息被騰訊屏蔽了,多長時間能解除
同樣的信息內容頻繁的發送,就會被屏蔽,如果屏蔽了就不要發送了,正常情況三天左右就恢復正常號。
QQ號群發消息被凍結了處於保護模式也沒法解開申訴成功也沒用一定要等到它規定的時間才會自動解
只要不是永久型保護模式,就可以取消。
目前保護模式類型有以下幾種,QQ號碼不同,解除方式也會不同
永久類型:QQ號碼存在重大違規和惡意操作,永久加入保護模式,無法解除,建議申請新的QQ號碼使用。
申訴類型:QQ號碼需要填寫號碼申訴,申訴通過後會自動解除保護模式。
時間類型:QQ號碼進入保護模式後系統會*一個時間段,時間到了會自動解除。
改密類型:QQ號碼修改密碼成功後即可解除。若無法成功修改密碼,可以填寫號碼申訴,申訴成功可解除保護保護模式。
簡訊類型:請登錄到http://aq.qq.com/007根據頁面提示使用任意一部手機發送隨機碼到指定代碼中,即可成功解除保護模式。
驗證碼類型:請登錄到http://aq.qq.com/007根據頁面提示輸入驗證碼即可解除。
----------------------------------------
QQ登錄保護模式。
登錄QQ的安全中心https://aq.qq.com/007。輸入要解除保護的QQ號碼
就會跳轉到下一個界面,顯示你的QQ目前存在的盜號風險。可以通過改密恢復,也可以通過手機簡訊的方式恢復。有時候密碼已經被修改了,就可以使用手機簡訊來解除。
按提示的編輯簡訊信息發送,然後就可以短時間解除安全保護。但是要是真正解決問題,還是得設置安全密保。如果原先沒有設置。可以通過申訴重新獲得。當然也可以使用QQ手機密令。
這樣我們就能成功解除QQ的安全保護,同時,加強日常的保護防範是不可少的。騰訊也聽過了不少的工具為我們進行安全保護。
---------
QQ經常未登錄進入保護模式。
登錄到QQ官網的安全中心界面,輸入不能登錄的QQ賬戶
輸入QQ的賬戶之後,點擊下一步,如果未被QQ系統保護,會彈出:您的賬號未被凍結的提示
如果輸入的賬號的確被凍結了,就會有幾次什麼原因導致被系統凍結這樣的提示。點擊改密立即回復登錄。
如果還未綁定手機,不妨綁定手機,這樣一來即便是賬戶被盜,還可以通過手機找回賬戶。
很多用戶通過網上的解除保護界面的操作,並不能實行解除功能,此時可以選擇其他途徑找回密碼,比如郵箱等:密碼管理→賬號申訴→輸入郵箱→按照步驟要求找回密碼。
找回QQ賬戶成功之後,勿忘及時修改新的密碼等措施。
qq群發信息別人看不到,是怎麼回事
你發送群里的消息別人看不到原因可能有三個:
一是,你的qq版本需要升級了,更新後就可以了
二是,你如果隱身了,只有和你私聊的人可以看到你的消息,其他人看不到的
三是,如果你發送的是文件,不能鑒別安全性,其他人也會看不到的
別人發的消息你看不到,只有一個原因:你屏蔽了群消息,或者只是隔多長時間接受一次群消息,如果你看了,就會留下記錄,如果沒有查看那就沒有記錄了。
如果要在接收群消息,進入群消息設置中,選擇接收並提示群消息即可。
如何設置QQ群發消息?
1、登陸QQ,點擊「聯系人」,將「好友」切換到「群聊」,點擊右邊的「+」,選擇「創建群聊」並點擊。
2、接著,我們在打開的「創建群聊」界面點擊「選人創建」
3、然後,我們在「選人創建」列表中點擊「選擇好友」,或者輸入好友的QQ號碼選擇你想要群聊的好友,最多能選擇100個好友。
4、點擊確定後,就可以在群聊給所有好友群發布消息了。
在QQ群發的消息別人都看不到是怎麼回事
我也是這樣的情況。QQ群發消息,只有自己能看到,其他成員都看不到,討論組,私聊別人都能看到,群里也沒有被屏蔽,所有群都是這樣,怎麼回事,同問,我遇到這樣的情況。

❺ QQ 被屏蔽的消息,如何查找

一、QQ好友屏蔽期間的發言怎麼看:

1、登陸qq,右鍵點擊好友頭像--許可權設置--屏蔽此人消息,如果是屏蔽了的話,這個選項前面是有個勾的,點擊取消簽名的勾就可以了。

注意事項

如果屏蔽後想看他的記錄,可以在聊天記錄搜索那輸入他的QQ號或者QQ名

❻ Dev c++寫代碼時無法輸入漢字,顯示的是日語

創建的*.c源文件的編碼格式是UTF-8,devc++用ansi來解碼源文件,如果你的源代碼採用其他編碼方式,那麼devc++里顯示的肯定是亂碼。

❼ 下面這段JS代碼,為什麼運行以後右鍵查看源代碼,看不到代碼已經被屏蔽,而是一行亂碼

你在onload執行了 clear方法。

代碼解釋如下:
Source=document.body.innerHTML;

//獲取body元素內的內容
document.open();

//打開一個新的空白文檔

document.write("代碼已經被屏蔽");

//往這個新文檔里寫內容(你看到的那一行字就是這個,至於亂碼是由於頁面編碼問題)
document.close();

//關閉文檔
document.body.innerHTML=Source;

//把原來的內容重新寫回body元素中

可能你還是不理解
其實我們右鍵看到的源代碼都不是動態生成的,都是原生的,document.write就是原生的,是往頁面裡面寫內容
但是document.body.innerHTML=Source卻是動態生成修改的,所以源代碼里是看不到的,是運行中的東西。

希望對你有幫助

❽ 請問如何用易語言禁止鍵盤輸入,請給源碼.謝謝!!!

.版本 2
.支持庫 spec

.子程序 _按鈕1_被單擊

信息框 (「開始屏蔽滑鼠和鍵盤」, 0, )
BlockInput (真)
延遲 (3000) ' 屏蔽3秒鍾
BlockInput (假)
信息框 (「結束屏蔽滑鼠和鍵盤」, 0, )

.版本 2

.DLL命令 BlockInput, 整數型, "user32.dll", "BlockInput"
.參數 fBlock, 邏輯型, , 真為鎖 假為恢復

❾ 如何屏蔽中文字元

用javascript如何判斷文本框里輸入的字元有中文字元呢(簡體與繁體),也就是說如何禁止向伺服器提交中文字元。
一般做法是當滑鼠焦點在文本框里時,屏蔽中文輸入法,可是卻不能控制別人中文字元,況且這個方法不符合web標准。所以可以用正則表達式驗證輸入的是否是中文字元。需要計算出簡體與繁體unicode碼范圍,接下來的事情就簡單多了。

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0

Transitional//EN">
<html>
<head>
<script>
function validateTxt()
{

var
txt1=document.getElementByIdx('txt').value; //取得需要驗證的輸入框里值
var pattern =
/[\u4E00-\u9FA5]|[\uFE30-\uFFA0]/i; //中文簡體及繁體unicode碼范圍

if(pattern.test(txt1)){ //正則表達式模式匹配,返回true,則輸入的中文字元

//也可以pattern.exec(txt1),或txt1.match(pattern)來驗證
alert("請輸入中文字元以外其他字元!");


return false;

}
}

</script>
</head>
<body class="otherBodyStyle" >

<form
name="form1" method="post" action="#" onsubmit="return validateTxt();">
<input type="text" id="txt" ><input type="submit" name="commit"
value="提交">
</body>
</html>

❿ 前端屏蔽中文輸入法(input輸入框type=「password「顯示明文)

1、input輸入框如果type=password能滿足我們的需求,但是是密文,我們要明文顯示,實現源碼如下:

<!DOCTYPE html>

<html lang="en">

<head>

    <meta charset="UTF-8">

    <meta name="viewport" content="width=device-width, initial-scale=1.0">

    <title>屏蔽輸入法</title>

</head>

<style>

  body{

    background-color:rgb(220, 220, 255);

  }

  #password,#clear{

    position: absolute;

  }

  #password{

    opacity: 0;

    border: 0px;

    width: 1px;

    z-index: 999;

  }

  #clear{

    outline: none;

    color:rgb(214, 124, 6);

    width: 95%;

    background-color: rgba(255, 255, 255, 0.2);

    border: none;

    height: 40px;

    text-indent: 15px;

    border-radius: 5px;

  }

</style>

<body>

    <input type="password" id="password"/>

    <input type="text" placeholder="請掃描輸入內容" id="clear" />

</body>

<script src="https://cdn.bootcdn.net/ajax/libs/jquery/3.5.1/jquery.js"></script>

<script>

//聚焦clear

$('#clear').focus();

//監聽clear輸入框

$('#clear').bind('input propertychange', function()

{

  //聚焦password

  $('#password').focus();

  //將clear賦值給password

  $('#password').val($("#clear").val());

  //延遲200毫秒聚焦clear

  setTimeout(function(){

            $("#clear").focus();

        }, 200)

})

//監聽password輸入框

$('#password').bind('input propertychange', function()

{

  //將password賦值給clear

  $('#clear').val($("#password").val());

  //延遲200毫秒聚焦clear

  setTimeout(function(){

            $("#clear").focus();

        }, 200)

})

</script>

</html>

閱讀全文

與源碼的消息屏蔽了中文角色的輸入相關的資料

熱點內容
iis7gzip壓縮 瀏覽:39
有什麼安卓機打吃雞好 瀏覽:595
三星u盤加密狗 瀏覽:471
php函數的返回值嗎 瀏覽:584
國企穩定程序員 瀏覽:325
編程貓如何使用教程視頻 瀏覽:218
安卓遠端網頁如何打日誌 瀏覽:218
壓縮flash大小 瀏覽:993
解壓的玩具教程可愛版 瀏覽:366
哪個求職app比較靠譜 瀏覽:888
java的讀法 瀏覽:59
nod32區域網伺服器地址 瀏覽:1002
數碼科技解壓 瀏覽:235
新網的雲伺服器管理界面復雜嗎 瀏覽:367
無人聲解壓強迫症視頻 瀏覽:571
計算機編譯運行 瀏覽:639
單片機嵌套 瀏覽:988
python字元串中符號 瀏覽:787
python正則表達式貪婪模式 瀏覽:650
愛國精神指的是什麼app 瀏覽:408