首页 > 语言 > 关键词  > 单引号最新资讯  > 正文

Ewebeditor及fckeditork单引号的问题

2010-04-03 17:26 · 稿源:Chinaz用户投稿

Ewebeditorfckeditork,90%的网站都是采用这两种编辑器作为产品或者内容的说明部分的编辑窗口,近日,一客户的外贸站点基本上快完工了,因客户产品分类多,故而让客户自己在后台添加产品,但是客户反映,在后台添加产品时,如果产品说明内容太过复杂的话,产品怎么也添加不入数据库中。

当时,我们也好生郁闷,这到底怎么回事,我们亲自测试后台添加任意的产品或者文字都能成功,偏偏他就不行,在网站搜索了相关的如“Ewebeditor 不能添加到数据库”,似乎找到了一点答案,因Ewebeditor自身没对单引号过滤,导致了添加不到数据库的问题。于是乎,我们把编辑器换成了fckeditork,可是还是不行,那是Ewebeditor及fckeditork自带的不完善导致的吗?为什么一个简单的单引号会引发不能添加到数据库呢,想到这里,我们想到了分析下入库代码,我们采用的是SQL=insert into product(title,content) values(' " &request("title")& "' ,' "&request("content")& " ' )的写法,于是我们找到客户当时COPY进编辑器里的内容,发现,果然这内容中包括有单引号,原来,正是由于客户提交到编辑器里的内容中含有单引号,导致我们的SQL语句变化了,相当于原来是SQL=insert into product(title,content) values('内容' ,'内容' )变成了SQL=insert into product(title,content) values(' 内容' ,' 内容'' ),我们细看就知道,就因为这content里多了个单引号,SQL语句发生的严重的写法错误,但是,我们也奇怪,既然他写法错误,为什么SQL语句不给出错误提示呢,竟然也会提示操作成功,想到这里,我们想到了2003年那几年,普遍的小黑客喜欢用的' or' =' or' 的后台入侵法,是乎正是利用了SQL执行时,没过滤单引号的BUG,导致SQL怎么执行,结果都返回真,呵呵,没想到,原以为写程序尽量图个简单明了,也是个错啊。好了,问题找到了,以后,凡是SQL入库前,我们都把字段过滤后再传值,就不会再出这样的问题了,下面是一个非常完善的SQL安全过滤函数,大家直接拿去就可以调用了。

Function HTMLEncode(Str)
If Isnull(Str) Then
HTMLEncode = ""
Exit Function
End If
Str = Replace(Str,Chr(0),"", 1, -1, 1)
Str = Replace(Str, """", """, 1, -1, 1)
Str = Replace(Str,"<","&lt;", 1, -1, 1)
Str = Replace(Str,">","&gt;", 1, -1, 1)
Str = Replace(Str, "script", "&#115;cript", 1, -1, 0)
Str = Replace(Str, "SCRIPT", "&#083;CRIPT", 1, -1, 0)
Str = Replace(Str, "Script", "&#083;cript", 1, -1, 0)
Str = Replace(Str, "script", "&#083;cript", 1, -1, 1)
Str = Replace(Str, "object", "&#111;bject", 1, -1, 0)
Str = Replace(Str, "OBJECT", "&#079;BJECT", 1, -1, 0)
Str = Replace(Str, "Object", "&#079;bject", 1, -1, 0)
Str = Replace(Str, "object", "&#079;bject", 1, -1, 1)
Str = Replace(Str, "applet", "&#097;pplet", 1, -1, 0)
Str = Replace(Str, "APPLET", "&#065;PPLET", 1, -1, 0)
Str = Replace(Str, "Applet", "&#065;pplet", 1, -1, 0)
Str = Replace(Str, "applet", "&#065;pplet", 1, -1, 1)
Str = Replace(Str, "[", "&#091;")
Str = Replace(Str, "]", "&#093;")
Str = Replace(Str, """", "", 1, -1, 1)
Str = Replace(Str, "=", "&#061;", 1, -1, 1)
Str = Replace(Str, "'", "''", 1, -1, 1)
Str = Replace(Str, "select", "sel&#101;ct", 1, -1, 1)
Str = Replace(Str, "execute", "&#101xecute", 1, -1, 1)
Str = Replace(Str, "exec", "&#101xec", 1, -1, 1)
Str = Replace(Str, "join", "jo&#105;n", 1, -1, 1)
Str = Replace(Str, "union", "un&#105;on", 1, -1, 1)
Str = Replace(Str, "where", "wh&#101;re", 1, -1, 1)
Str = Replace(Str, "insert", "ins&#101;rt", 1, -1, 1)
Str = Replace(Str, "delete", "del&#101;te", 1, -1, 1)
Str = Replace(Str, "update", "up&#100;ate", 1, -1, 1)
Str = Replace(Str, "like", "lik&#101;", 1, -1, 1)
Str = Replace(Str, "drop", "dro&#112;", 1, -1, 1)
Str = Replace(Str, "create", "cr&#101;ate", 1, -1, 1)
Str = Replace(Str, "rename", "ren&#097;me", 1, -1, 1)
Str = Replace(Str, "count", "co&#117;nt", 1, -1, 1)
Str = Replace(Str, "chr", "c&#104;r", 1, -1, 1)
Str = Replace(Str, "mid", "m&#105;d", 1, -1, 1)
Str = Replace(Str, "truncate", "trunc&#097;te", 1, -1, 1)
Str = Replace(Str, "nchar", "nch&#097;r", 1, -1, 1)
Str = Replace(Str, "char", "ch&#097;r", 1, -1, 1)
Str = Replace(Str, "alter", "alt&#101;r", 1, -1, 1)
Str = Replace(Str, "cast", "ca&#115;t", 1, -1, 1)
Str = Replace(Str, "exists", "e&#120;ists", 1, -1, 1)
Str = Replace(Str,Chr(13),"<br>", 1, -1, 1)
HTMLEncode = Replace(Str,"'","''", 1, -1, 1)
End Function

文章首发:https://www.seohf.com/seonews/view654.html 如需转载,请注明出处。

  • 相关推荐
  • 大家在看
  • 腾讯云服务器12.12限时秒杀-1核2G首年50元

    腾讯云服务器12.12多种机型限时抢购,1核2G服务器4.17元/月,2核4G服务器6.17元/月,专业技术7*24小时在线服务,腾讯云为企业和个人提供快捷,安全,稳定的云服务!

    广告
  • 苹果推出虎年特别版AirTag与Beats Studio Buds

    苹果刚刚推出了虎年特别版的 AirTag 智能寻物标签和 Beats Studio Buds 真无线耳机,从官方晒出的图片来看,其主要采用了红底 + 金色条纹图案的装饰设计风格。虽然与标准款在功能上没有任何差异,但感兴趣的朋友还是可以收藏一套这样的限量款产品。据悉,Beats Studio Buds 虎年特别版将于 2022 年 1 月 1 日开售。遗憾的是,官方尚未披露其是否有溢价。作为参考,标准款的建议零售价为 149 美元(国行 1099 RMB)。然后是虎年特别

  • 美国法官驳回Cydia Creator针对苹果的诉讼

    美国地方法官伊冯娜·冈萨雷斯·罗杰斯 (Yvonne Gonzalez Rogers) 今天批准了苹果公司的动议,驳回杰伊·弗里曼 (Jay Freeman) 对苹果公司提起的诉讼,杰伊·弗里曼 (Jay Freeman) 是Cydia的创始人,曾是iOS“越狱”的重要工具。

  • DIZO Watch R和Buds Z Pro于1月5日发布

    Realme TechLife品牌DIZO正准备在1月5日发布一系列新的智能配件,包括Watch R smartwatch和Buds Z Pro TWS耳机。手表R看起来很像Realme手表T1,带有圆形1.3英寸AMOLED显示屏、5ATM防水、连续心率监测。它还被证实具有血氧饱和度计,100多种运动模式和电池寿命额定为12天的有争议的使用DIZO Watch R and Buds Z Pro(图片:DIZO)DIZO Bubes Z Pro据说拥有10毫米硬盘、ANC和最多25小时的播放时间,附带充电箱。这款耳机看起来与之前

  • AT&TDish和T-Mobile投入数十亿美元购买更多5G频谱

    ATT、Dish和T-Mobile在美联邦通信委员会的拍卖中投入了数十亿美元以获得3.45GHz至3.55GHz中频段的更多5G频谱许可证...只有去年800亿美元的C波段拍卖和2015年449亿美元的AWS-3拍卖超过了这个支出数额...Light Reading还指出,支持C频段的智能手机可能已经能够使用该频段,因为它们都属于第三代合作伙伴计划的n77技术标准,其涵盖了3.3GHz至4.2GHz,现有的5G智能手机则已经在使用...

  • 苹果推出Beats Studio Buds虎年特别版 售1099元

    凤凰网科技讯(作者/田淑娴)12月28日消息,苹果推出虎年特别版Beats Studio Buds真无线降噪耳机,具备IPX4级抗汗抗水性能,最长续航24小时,售价1099元,新年开售。Beats Studio Buds虎年特别版的耳机与充电盒采用全红配色,并搭配金色虎纹图案以庆祝中国农历新年的到来。外观设计继续沿用Beats Studio Buds耳机的入耳式设计和上开盖椭圆形耳机盒,同样支持IPX4级抗汗抗水性能,Beats Studio Buds虎年特别版耳机支持ANC主动降噪技

  • NVIDIA RTX 3090 Ti紧急叫停:BIOS、硬件都有问题

    CES 2022大会期间,NVIDIA发布了四款显卡,针对高端游戏本的RTX 3080 Ti、RTX 3070 Ti,面向入门桌面市场的RTX 3050,都正在陆续到来,唯有顶级旗舰RTX 3090 Ti有些神秘。RTX 3090 Ti官方公布的信息很少,主要一是说了显存,384-bit位宽,24GB GDDR6X容量,最快频率21GHz,二是算力,着色单元40TFlops,光追单元78TFlops,AI单元320TFlops,官方都称之为怪兽”。根据曝料,该卡会使用满血完整版GA102核心,10752个流处理器,频率15

  • 苹果发布Beats Studio Buds虎年特别版降噪耳塞:1099元

    12月28日上午,苹果旗下品牌Beats宣布推出新品,虎年特别版Beats Studio Buds真无线降噪耳机,售价1099元,定于1月1日上线。显然,该产品特别为迎接中国农历新年打造,官方Slogan是虎年听新声”,全力化身你的护身虎,屏蔽外界干扰,为你如虎添翼。外形方面,除了经典的红色打底,还有象征老虎的黄色斑纹图案点缀,显得很别致。据悉,Beats Studio Buds发布于今年6月,提供红色、黑色和白色,是Beats继Powerbeats Pro后第二款真无?

  • NVIDIA发布GeForce RTX 3080家族中的12GB显存型号

    显存的提升毫无疑问是值得欢迎的,之前在媒体对RTX3080的初步评测中,显存不足是一个令人担忧的地方...对于今日新发布的版本,NVIDIA仍然建议使用750瓦的电源,但是这款12GBRTX3080的功率增加了30瓦,总功率达到350瓦,而原来的RTX3080的功率是320瓦...与原来的RTX3080相比,这是一个相对较小的升级,而且无论新旧型号在商店里同样难以买到...

  • LITTLEONDINE小奥汀冬季唱片礼盒上市 限定单品打造冬季梦幻妆容

    冬季是浪漫的专属季节,而音符更为冬季浪漫增添情调。今年圣诞季,惊喜无限的LITTLEONDINE小奥汀再次玩出新意,推出「白色范特西」冬季唱片礼盒,谱写专属于圣诞的浪漫幻曲。白色音符跳动 LITTLEONDINE小奥汀为冬季增添浪漫色彩LITTLEONDINE小奥汀「白色范特西」冬季唱片礼盒以冬季熠熠幻彩和浪漫白雪相互碰撞,谱写冬季专属序曲。礼盒封面以浪漫白粉色为基调,生动地呈现了皑皑白雪间一群麋鹿在山谷间飞驰而过的梦幻场景。缓缓揭?

  • Nvidia宣布推出具有更多CUDA内核的12GB版本RTX 3080

    Nvidia刚刚宣布了一款改进的RTX 3080 GPU,与原来的10GB相比,它提供12GB的VRAM。还有大约3%的CUDA内核,总计8960个由于采用了更宽的384位内存总线,内存的升级将使带宽增加20%。因此,GPU比原来的版本(需要320W)多消耗约30W的功率。然而,Nvidia仍建议使用750W额定电源新的变体应该从今天开始从精选的董事会合作伙伴处提供,但定价仍然未知

这篇文章对你有价值吗?

  • 热门标签

热文

  • 3 天
  • 7天