要做一个简单的留言板 功能很简单 打算全部用textbox实现 不用编辑器 然后在后台替换一下换行和空格就可以了
在这里面都需要考虑哪些安全问题 以及该如何处理?
比如说用户直接发布HTML代码 或者Javascript代码 等这些该如何应对?请高手指点!
不胜感激!

解决方案 »

  1.   

    可以在用户发布的时候就把一些html的标记,js的常用的关键字替换掉,比如<>,</>,function,这样的
      

  2.   

    只有2点:
    1、插入数据库时,把单引号替换成2个单引号
    2、在前台显示的时候,调用Server.HtmlEncode你的问题就解决了。
      

  3.   

    调用Server.HtmlEncode
    那样的话 回车 换行 岂不是也被弄掉了?
    怎么解决?
      

  4.   

    用户输入什么,你就把什么存入数据库,原封不动
    (这样在出问题进行调试时也不用手动再去转换回原来的模样,否则你分不出哪个是你替换的,哪个是用户输入的)显示的时候,先HtmlEncode
    再替换回车和换行
      

  5.   

    用户输入什么,你就把什么存入数据库,原封不动  这个时候是不是先要把 "\n" 和" "替换成 对应的<br/>和"&nbsp;"
      

  6.   

    要不然的话存进数据库的时候肯定是不带空格和换行了不过要是这样的话 那读出来的时候HtmlEncode就又没有格式了
    按你说的再替换 那怎么替换? 
    不明白 麻烦你说具体点 第一、……  第二、……
    谢谢!
      

  7.   

    只有2点: 
    1、插入数据库时,把单引号替换成2个单引号 
    这个不明白?防止注入攻击啊,用户输入一个单引号,你替换成2个单引号,这样存入数据库还是一个单引号,如果还不明白,去学习一下数据库基础知识吧。
    对于n多人说的替换关键字,纯粹是胡扯,那你的网站是不是关键字都不能发表了?2、在前台显示的时候,调用Server.HtmlEncode 
    正如我上面所说,用户输什么,就存什么进数据库,存入之前,什么操作也不做,是最好的,
    在显示的时候,再进行你说的那些替换操作。
      

  8.   

    这位已经说得非常清楚了!Server.HtmlEncode就是那些你存入数据的html代码如</br>这些,读取出 来的时候还是把它解析为HTML 过滤掉引号就行了!
      

  9.   

    屏js,html代码,屏sql敏感字,我能想到的就这些了