Heim  >  Fragen und Antworten  >  Hauptteil

javascript – Über Ajax, sichere Verarbeitung der vom Front-End-JQ erfassten Daten

In Bezug auf Ajax und Datenquellen verwende ich normalerweise JQ-Notizen, um den Wert, der gepostet werden muss, direkt in ein Element zu werfen und ihn dann abzurufen. Verwenden Sie auf diese Weise die Browserkonsole, um die Seitenattribute zu ändern, und der Wert des Ajax-Beitrags wird ebenfalls geändert.
Obwohl ich PHP im Backend verwende, um festzustellen, ob der Benutzer eine echte Person ist, kann das nur so weit gehen.
Ich habe gesehen, dass die Werte relevanter Elemente auf der Seite einer bestimmten Website ständig steigen.
Wie kann man dies verhindern? Wird über die Konsole oder auf andere Weise darauf zugegriffen?
Reine Textbeschreibung. Wenn Sie sie nicht verstehen, kann ich ein Bild posten, um es zu zeigen

Ajax-Verarbeitung

...
$('.jq_btn_del').click(function () {
    var i=$(this).attr('jqid');
    alert(i)
    if(vardel){
      ...
        $.ajax({
             ...
            type:'post',
            data:{'course_id':i,...},
            datatype:'json'
            ...
           
    }
})

Vorderseite

<td>
  <a class="jq_btn_del"
jqid="{$vo.sharing_id}" >删除</a> 
</td>

Konsole

Ich habe die Konsole verwendet, um den unterstrichenen Teil jqid im Bild zu ändern, und dadurch wurden auch die Ajax-Verarbeitungsdaten geändert. jqid,结果ajax的处理数据也被改变了。
我知道后台要过滤判断,但是面对提交数据多的话,肯定有疏漏。
我自己也想过,直接全部数据丢json,然后在获取一个id,根据id获取json里的数据在处理判断。
我见过有人再类型jqidIch weiß, dass im Hintergrund Filterung und Beurteilung erforderlich sind, aber wenn viele Daten übermittelt werden, muss es Auslassungen geben.

Ich habe auch darüber nachgedacht, alle Daten direkt an JSON zu verlieren, dann eine ID zu erhalten und dann die Daten basierend auf der ID zur Verarbeitung und Beurteilung in JSON abzurufen. 🎜Ich habe Leute gesehen, die einen Zeitakkumulationswert im Typ jqid erstellt haben, um Änderungen zu vermeiden. Bitte teilen Sie mir mit, wie Sie normalerweise Daten auf der Seite verarbeiten, auf der jq und html verfügbar sind. Ich weiß, dass der JQ-Code in der Konsole nicht geändert werden kann. Wenn jq in foreach mindestens einen Wert auslöst, ist dieser Wert sehr gefährlich. Was ich gesagt habe, war sehr verwirrend...🎜
漂亮男人漂亮男人2713 Tage vor405

Antworte allen(1)Ich werde antworten

  • PHP中文网

    PHP中文网2017-05-16 13:18:33

    只是防止控制台修改的话,我暂时只知道 cookie设置httpOnly这种只有通过后台会话方式才能修改的方式。
    如果只是防跨域修改的,sessionStorage和localStorage可以。但是这两个都不能防止用户直接打开控制台注入。
    其实最终的安全措施都应该就后台进行,拦截过滤。
    “不要相信任何的来自用户输入”

    ==========
    你是担心非法的js改变了你绑定在dom上的数据,导致你删掉了不该删掉的数据?
    你试试用事件的形式吧 将操作绑定到你的dom元素上。

        $('.jq_btn_del').each(function(){
            var id = $(this).data('id')
            $(this).click(function(){
                deleteFuction(id)
            })
        })

    大概这么个意思。

    Antwort
    0
  • StornierenAntwort