搜狗输入法导致程序崩溃怎么办

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了搜狗输入法导致程序崩溃怎么办相关的知识,希望对你有一定的参考价值。

搜狗拼音输入法经常崩溃的处理方法:

将搜狗拼音输入法卸载干净后重新从官网下载新的版本安装,或者安装其它版本的搜狗拼音输入法;
使用杀毒软件彻底查杀电脑里面的病毒,防止病毒干扰引起的崩溃;
关闭电脑上面不使用的软件和服务进程,卸载和删除电脑里面不常用的软件和文件,减轻电脑的运行负荷,进而使得其他软件流畅运行。
参考技术A 应该是搜狗词库更新作的怪,
就不知你的软件和词库文件(5.2.0.5374)是不是在同一文件夹下,
是的话 就是 词库更新作的怪了,每当词库更新时都要卸掉以前的旧词库 ,
更新时没有区分除当前版本文件夹以外的其他文件夹是否都属于搜狗词库旧版本。
所以 都会被卸得干干净净。。。QQ就没有这个BUG,
把搜狗独立出来装 就没事了。
PS: 我之前就中过这样的招。。
参考技术B   也不一定非用搜狗的,你可以试试QQ拼音输入法,紫光华宇拼音输入法。效果和搜狗差不多的,如果以上那些输入法还是有问题,准备重新做系统吧。

撇号导致 Node SQL 应用程序崩溃

【中文标题】撇号导致 Node SQL 应用程序崩溃【英文标题】:Apostrophe causes Node SQL application to crash 【发布时间】:2021-07-29 01:25:50 【问题描述】:

我有一个使用 sqlite3 和 Node/Express 的应用程序。应用程序中有一个查询数据库的搜索栏,但是当输入 ' 或 " 时,它会使整个页面崩溃。我知道它是 SQL 中的保留字符,但是我更喜欢输入时呈现 SQL 错误消息页面而不是完全崩溃。

当在后面输入常规输入(例如香蕉)时,它不起作用并继续使页面崩溃。任何想法为什么?

截图如下:

和代码:

app.js

    ...
    var query = "SELECT * FROM tab WHERE name = '" + req.query.name + "'"
    db.all(query, (error, rows) => 
            res.render(__dirname + '/views/search.ejs', data:rows, msg:req.query.name + " is available!")
    )
    ...

index.html(搜索栏)

                <form id="search_form" name="gs" method="get" action="search">
                <div class="searchText">
                  
                  <input type="text" name="name" class="searchText" id="searchText" placeholder="Enter your name here..." autocomplete="on">
                </div>
                    <input type="submit" name="results" class="main-button" value="Search Now">
                 </form>

search.ejs(显示数据库输出的内容)

              <span><%- msg %></span>
              <h2>Check out our x</h2>
              <table class="styled-table">
              <thead>
              <tr>
                <th>x</th>
                <th>y</th>
              </tr>
              </thead>
              <% data.forEach(function(dat)  %>
                <tr>
                  <td><%= dat.name %></td>
                  <td>$<%= dat.var %>/yr</td>
                </tr>
              <% ); %>
              </table>

【问题讨论】:

【参考方案1】:

您不应在 SQL 语句中对变量使用单撇号或双撇号,因为它容易受到 SQL 注入的影响。您应该:(1) 转义您的 SQL 语句或 (2) 使用 ?占位符。

(1) 逃跑

var a = 'AB1234';
var sql = 'SELECT * FROM orders WHERE cust = ' + mysql.escape(a);
con.query(sql, function (err, result) 
  if (err) throw err;
  console.log(result);
);

(2) ?占位符

var a = 'AB1234';
var sql = 'SELECT * FROM orders WHERE a = ?';
con.query(sql, [a], function (err, result) 
  if (err) throw err;
  console.log(result);
);

【讨论】:

是的,我最初是这样做的,但应用程序的目的是演示 SQL 注入,这就是为什么我没有转义或使用?目前。有没有办法在输入 ' 时只显示默认的 SQLite 错误消息? 您是否考虑过使用 try...catch 和 throw 子句?

以上是关于搜狗输入法导致程序崩溃怎么办的主要内容,如果未能解决你的问题,请参考以下文章

搜狗输入法 for linux 怎么使用

win10微软自带输入法导致程序崩溃怎么解决

Ubuntu 14.04下搜狗输入法崩溃重启

电脑搜狗输入法不能用怎么办

搜狗输入法表情太小了怎么办

CentOS6.5怎么安装 搜狗输入法