เทคโนโลยี

Submit Form ไม่ได้เพราะโค้ด Html script tag

เคยเจอกันไหมครับ พอดีเราแบบอยากจะให้เอาโค้ด Html หรือโค […]

ปรับปรุงล่าสุด 16/03/2565
Submit Form ไม่ได้เพราะโค้ด Html script tag

เคยเจอกันไหมครับ พอดีเราแบบอยากจะให้เอาโค้ด Html หรือโค้ด Javascript เช่น โค้ดพวก Messenger หรือ Google ให้ใส่ใน Textarea หรือ CKEditor แล้วบันทึกลง Database แต่พอ Submit แล้วดันขึ้น Error 403 Forbidden: You don’t have permission to access this resource.

ตัวอย่างโค้ดที่อยากใส่

<!-- Messenger ปลั๊กอินแชท Code -->
<div id="fb-root"></div>

<!-- Your ปลั๊กอินแชท code -->
<div id="fb-customer-chat" class="fb-customerchat">
</div>

<script>
  var chatbox = document.getElementById('fb-customer-chat');
  chatbox.setAttribute("page_id", "your page id");
  chatbox.setAttribute("attribution", "biz_inbox");
</script>

<!-- Your SDK code -->
<script>
  window.fbAsyncInit = function() {
    FB.init({
      xfbml            : true,
      version          : 'v13.0'
    });
  };

  (function(d, s, id) {
    var js, fjs = d.getElementsByTagName(s)[0];
    if (d.getElementById(id)) return;
    js = d.createElement(s); js.id = id;
    js.src = 'https://connect.facebook.net/th_TH/sdk/xfbml.customerchat.js';
    fjs.parentNode.insertBefore(js, fjs);
  }(document, 'script', 'facebook-jssdk'));
</script>

แล้วไปค้นยังไง ก็มีแต่คนบอกว่าให้ปิด Mod Security ซึ่งไอ้ตัว Mod Security ถ้าปิดก็คือเรื่องใหญ่เลย เพราะมันเป็นตัวกันเพื่อให้เว็บเราปลอดภัย

หลังจากพยายามหาทุกทางในที่สุดก็ทำได้แล้วววววว ตัวอย่างโค้ดตัวนี้จะมีการใช้ CKEditor และ jQuery ร่วมด้วยนะ ถ้าใครจะเอาไปใช้แบบ Javascript ก็ไปแปลงเอาเองนะ

แนวคิด

จากการ Submit ปกติ ก็ใช้ Ajax แล้วส่งข้อมูลรูปแบบ JSON ไปแทน และก่อนส่งก็อย่าลืม Escape แท็กต่างๆ ด้วย หลังส่งไปค่อยไปแก้ทีหลังให้กลับคืนมาเหมือนเดิม ไม่งั้นมันจะ Error 403 อยู่ดี เพราะระบบมันตรวจเจอ