PHP ve CKEditor stil uygulanınca "/" dizinine atıyor.
Merhaba,
PHP ile ufak bir script yapıyorum ve bir bölümünde CKEditor ile içerikleri alıp veritabanına kaydediyorum.
Normal stil uygulamadan veritabanına kaydetmeye çalıştığımda herhangi bir sorun olmadan kaydediyor fakat bir stil uyguladığımda -örneğin yazı rengini değiştirdiğimde- veritabanına kaydetmeden doğrudan "/" dizinine atıyor.
Bu şekilde veritabanına kaydediyorum:
$content = mysqli_real_escape_string($baglanti, htmlspecialchars($_POST["content"]));
CKEditor kodları bu şekilde:
<div class="mb-3">
<label for="content" class="form-label">İçerik</label>
<textarea class="form-control" id="content" name="content"></textarea>
</div>
ClassicEditor
.create(document.querySelector('#content'), {
entities: false
})
.catch(error => {
console.error(error);
});
Belki bir alakası vardı diye hata olduğu zaman headerlar bu şekilde oluyor:
HTTP/1.1 302 Found
Date: Sun, 09 Apr 2023 22:47:32 GMT
Server: Apache
Expires: Thu, 19 Nov 1981 08:52:00 GMT
Cache-Control: no-store, no-cache, must-revalidate
Pragma: no-cache
Location: /
Vary: Accept-Encoding
Content-Encoding: br
Content-Length: 1
Keep-Alive: timeout=5, max=100
Connection: Keep-Alive
Content-Type: text/html; charset=UTF-8
Payload'da content bu şekilde gözüküyor:
<p><strong>das</strong><i><strong>dasdas </strong></i></p><p><span style="background-color:hsl(210, 75%, 60%);">asasasasas</span></p><ul><li><i><strong>asddsa</strong></i></li></ul>
decoded haline baktığımızda: (unable to decode value)
diyor
ModSecurity kapattığınızda sorun çözülür.
Uyarı: Modsecurity kapattığınızda sitede bir güvenlik açığı oluşturabilirsiniz. Modsecurity'nin yaptığı birden fazla şey var. Bunlardan biride html bir içeriği Post etmenizi engellemesi.
Modsecurity tamamen kapatmak yerine modsecurity yapılandırmasında html içeriğin Post edilebilmesine izin verebilirsiniz 👍