如何确保我的网站安全

时间:2013-08-14 作者:sarah

我有一个php code 在我的网站内的报价表中java script 用于制作

 name , telephone number and email
提交表单之前需要填写的字段及其工作正常,但几天前我发现有人向我发送了大量该表单的垃圾邮件,他将表单发送为空,这意味着他可以访问我的文件,我的意思是像黑客一样,或者他如何做到这一点

<form id="forma" method="post" action="quatation.php"> 

        <div id="infoq">
          <label id="namelab" for="namea"><span>* </span><?php _e ("Name", "my_theme");?></label> 
            <input  type="text" name="namea" id="namea" value="" size="22" tabindex="1" class="rounded" required aria-required=\'true\' pattern="^([a-zA-Z\\u0600-\\u06ff\\ufb50-\\ufdff\\ufe70-\\ufeff]+)$" title="Your name (no special characters, diacritics are okay)"
                 spellcheck="false"/> <br />

        <label id="emaillb" for="email"><span>* </span><?php _e ("Email", "my_theme");?></label> 
<input type="email" name="email" id="email" value="" size="22" tabindex="2" class="rounded" required aria-required=\'true\' 
pattern="^(([-\\w\\d]+)(\\.[-\\w\\d]+)*@([-\\w\\d]+)(\\.[-\\w\\d]+)*(\\.([a-zA-Z]{2,5}|[\\d]{1,3})){1,2})$"
                title="Your email address" spellcheck="false" /> <br />

            <label id="phonelb" for="phonea"><span>* </span>Phone</label> 
这是一种形式,但问题是我过去用这个公式的时候。主题文件中的php文件它给了我错误

找不到请求的URL/Q。在此服务器上找不到php

所以我把它放在外面,这可能是原因吗?

2 个回复
SO网友:NullPoiиteя

他可能正在尝试黑客攻击。我确信您是在转义/清理内容后存储表单数据的,这消除了Sql注入的风险

enter image description here

由于用户可以提交空表单,这意味着您尚未完成服务器端验证。你需要检查的是

首先检查天气字段是否已设置,名称只能包含后者,例如[a-zA-Z](英文)

  • 电话号码只能包含数字[0-9]
  • 验证电子邮件格式(您也可以使用FILTER_VALIDATE_EMAIL)recaptcha 很好)
  • Good Read

    1. Validating Sanitizing and Escaping User Data
    2. Data Validation
    3. Chris Shiflett : security articles (强烈建议阅读)

    SO网友:Puggan Se

    在接收表单中的post数据的php上,需要使用php编码的相同检查。

    一个简单的版本可以是:

    if(!isset($_POST[\'name\']) OR strlen(isset($_POST[\'name\'])) < 4)
    {
        die("Name is required to be at least 4 character long.\\n");
    }
    if(!isset($_POST[\'telephone number\']) OR strlen(isset($_POST[\'telephone number\'])) < 4)
    {
        die("telephone number is required to be at least 4 character long.\\n");
    }
    if(!isset($_POST[\'email\']) OR strlen(isset($_POST[\'email\'])) < 4)
    {
        die("email is required to be at least 4 character long.\\n");
    }
    

    结束

    相关推荐

    PHP Syntax getting PHP terms

    我试图在这里理解php语法,因此我只能显示当前分类术语的相关产品。我希望$args过滤器“product\\u brand”能够动态获取当前产品术语。所以我需要一种方法来获取当前产品术语的段塞。我已经试过了,但它不起作用,而且返回了不止一个学期。$mjrelatedproducts = get_brands( $post->ID )->slug;$args = apply_filters(\'woocommerce_related_products_args\', array(