mirror of
https://github.com/Daichimarukana/uwuzu.git
synced 2026-06-04 19:14:41 +00:00
uwuzu v1.6.4 Hapuego
This commit is contained in:
+36
-13
@@ -410,11 +410,8 @@ function check_mime($tmp_name){
|
|||||||
"image/gif",
|
"image/gif",
|
||||||
"image/jpeg",
|
"image/jpeg",
|
||||||
"image/png",
|
"image/png",
|
||||||
"image/svg+xml",
|
|
||||||
"image/webp",
|
"image/webp",
|
||||||
"image/bmp",
|
"image/bmp",
|
||||||
"image/x-icon",
|
|
||||||
"image/tiff"
|
|
||||||
);
|
);
|
||||||
if(in_array($tmp_ext,$safe_img_mime)){
|
if(in_array($tmp_ext,$safe_img_mime)){
|
||||||
return $tmp_ext;
|
return $tmp_ext;
|
||||||
@@ -443,11 +440,8 @@ function convert_mime($mime_type){
|
|||||||
"image/gif" => 'gif',
|
"image/gif" => 'gif',
|
||||||
"image/jpeg" => 'jpg',
|
"image/jpeg" => 'jpg',
|
||||||
"image/png" => 'png',
|
"image/png" => 'png',
|
||||||
"image/svg+xml" => 'svg',
|
|
||||||
"image/webp" => 'webp',
|
"image/webp" => 'webp',
|
||||||
"image/bmp" => 'bmp',
|
"image/bmp" => 'bmp',
|
||||||
"image/x-icon" => 'ico',
|
|
||||||
"image/tiff" => 'tiff',
|
|
||||||
"video/mpeg" => 'mpeg',
|
"video/mpeg" => 'mpeg',
|
||||||
"video/mp4" => 'mp4',
|
"video/mp4" => 'mp4',
|
||||||
"video/webm" => 'webm',
|
"video/webm" => 'webm',
|
||||||
@@ -469,11 +463,8 @@ function base64_mime($Base64,$userid){
|
|||||||
"image/gif" => 'gif',
|
"image/gif" => 'gif',
|
||||||
"image/jpeg" => 'jpg',
|
"image/jpeg" => 'jpg',
|
||||||
"image/png" => 'png',
|
"image/png" => 'png',
|
||||||
"image/svg+xml" => 'svg',
|
|
||||||
"image/webp" => 'webp',
|
"image/webp" => 'webp',
|
||||||
"image/bmp" => 'bmp',
|
"image/bmp" => 'bmp',
|
||||||
"image/x-icon" => 'ico',
|
|
||||||
"image/tiff" => 'tiff'
|
|
||||||
];
|
];
|
||||||
|
|
||||||
if(isset($safe_img_mime[$mime_type])){
|
if(isset($safe_img_mime[$mime_type])){
|
||||||
@@ -482,6 +473,11 @@ function base64_mime($Base64,$userid){
|
|||||||
file_put_contents($temp_file, $Base64);
|
file_put_contents($temp_file, $Base64);
|
||||||
|
|
||||||
delete_exif($extension, $temp_file);
|
delete_exif($extension, $temp_file);
|
||||||
|
resizeImage($temp_file, 8192, 8192);
|
||||||
|
|
||||||
|
if(check_mime($temp_file) == "image/webp"){
|
||||||
|
$extension = 'webp';
|
||||||
|
}
|
||||||
|
|
||||||
$newFilename = createUniqId() . '-' . $userid . '.' . $extension;
|
$newFilename = createUniqId() . '-' . $userid . '.' . $extension;
|
||||||
$uploadedPath = '../ueuseimages/' . $newFilename;
|
$uploadedPath = '../ueuseimages/' . $newFilename;
|
||||||
@@ -514,11 +510,8 @@ function base64_to_files($Base64, $userid) {
|
|||||||
"image/gif" => 'gif',
|
"image/gif" => 'gif',
|
||||||
"image/jpeg" => 'jpg',
|
"image/jpeg" => 'jpg',
|
||||||
"image/png" => 'png',
|
"image/png" => 'png',
|
||||||
"image/svg+xml" => 'svg',
|
|
||||||
"image/webp" => 'webp',
|
"image/webp" => 'webp',
|
||||||
"image/bmp" => 'bmp',
|
"image/bmp" => 'bmp',
|
||||||
"image/x-icon" => 'ico',
|
|
||||||
"image/tiff" => 'tiff'
|
|
||||||
];
|
];
|
||||||
|
|
||||||
if (!(isset($safe_img_mime[$mime_type]))) {
|
if (!(isset($safe_img_mime[$mime_type]))) {
|
||||||
@@ -533,6 +526,11 @@ function base64_to_files($Base64, $userid) {
|
|||||||
|
|
||||||
// 必要に応じてEXIFデータを削除
|
// 必要に応じてEXIFデータを削除
|
||||||
delete_exif($extension, $temp_file);
|
delete_exif($extension, $temp_file);
|
||||||
|
resizeImage($temp_file, 8192, 8192);
|
||||||
|
|
||||||
|
if(check_mime($temp_file) == "image/webp"){
|
||||||
|
$extension = 'webp';
|
||||||
|
}
|
||||||
|
|
||||||
// ファイル名とアップロードパスを生成
|
// ファイル名とアップロードパスを生成
|
||||||
$newFilename = createUniqId() . '-' . $userid . '.' . $extension;
|
$newFilename = createUniqId() . '-' . $userid . '.' . $extension;
|
||||||
@@ -561,12 +559,18 @@ function resizeImage($filePath, $maxWidth, $maxHeight) {
|
|||||||
} elseif($imageType == "image/bmp") {
|
} elseif($imageType == "image/bmp") {
|
||||||
$originalImage = imagecreatefrombmp($filePath);
|
$originalImage = imagecreatefrombmp($filePath);
|
||||||
} else {
|
} else {
|
||||||
return;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
// 元の画像のサイズを取得
|
// 元の画像のサイズを取得
|
||||||
list($originalWidth, $originalHeight) = getimagesize($filePath);
|
list($originalWidth, $originalHeight) = getimagesize($filePath);
|
||||||
|
|
||||||
|
if ($originalWidth <= $maxWidth && $originalHeight <= $maxHeight) {
|
||||||
|
imagewebp($originalImage, $filePath, 90);
|
||||||
|
imagedestroy($originalImage);
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
// 縦横比を計算
|
// 縦横比を計算
|
||||||
$aspectRatio = $originalWidth / $originalHeight;
|
$aspectRatio = $originalWidth / $originalHeight;
|
||||||
|
|
||||||
@@ -588,6 +592,8 @@ function resizeImage($filePath, $maxWidth, $maxHeight) {
|
|||||||
// メモリの解放
|
// メモリの解放
|
||||||
imagedestroy($originalImage);
|
imagedestroy($originalImage);
|
||||||
imagedestroy($resizedImage);
|
imagedestroy($resizedImage);
|
||||||
|
|
||||||
|
return true;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -1425,12 +1431,17 @@ function send_ueuse($userid,$rpUniqid,$ruUniqid,$ueuse,$photo1,$photo2,$photo3,$
|
|||||||
// アップロードされたファイルの拡張子を取得
|
// アップロードされたファイルの拡張子を取得
|
||||||
$extension = convert_mime(check_mime($uploadedFile['tmp_name']));
|
$extension = convert_mime(check_mime($uploadedFile['tmp_name']));
|
||||||
delete_exif($extension, $uploadedFile['tmp_name']);
|
delete_exif($extension, $uploadedFile['tmp_name']);
|
||||||
|
resizeImage($uploadedFile['tmp_name'], 8192, 8192);
|
||||||
|
|
||||||
if($aibwm === true){
|
if($aibwm === true){
|
||||||
AIBlockWaterMark($uploadedFile['tmp_name'], $userid);
|
AIBlockWaterMark($uploadedFile['tmp_name'], $userid);
|
||||||
}
|
}
|
||||||
if(AMS3_CHKS == "true"){
|
if(AMS3_CHKS == "true"){
|
||||||
$s3result = uploadAmazonS3($uploadedFile['tmp_name']);
|
$s3result = uploadAmazonS3($uploadedFile['tmp_name']);
|
||||||
}else{
|
}else{
|
||||||
|
if(check_mime($uploadedFile['tmp_name']) == "image/webp"){
|
||||||
|
$extension = 'webp';
|
||||||
|
}
|
||||||
// 新しいファイル名を生成(uniqid + 拡張子)
|
// 新しいファイル名を生成(uniqid + 拡張子)
|
||||||
$newFilename = createUniqId() . '-'.$userid.'.' . $extension;
|
$newFilename = createUniqId() . '-'.$userid.'.' . $extension;
|
||||||
// 保存先のパスを生成
|
// 保存先のパスを生成
|
||||||
@@ -1481,12 +1492,16 @@ function send_ueuse($userid,$rpUniqid,$ruUniqid,$ueuse,$photo1,$photo2,$photo3,$
|
|||||||
// アップロードされたファイルの拡張子を取得
|
// アップロードされたファイルの拡張子を取得
|
||||||
$extension2 = convert_mime(check_mime($uploadedFile2['tmp_name']));
|
$extension2 = convert_mime(check_mime($uploadedFile2['tmp_name']));
|
||||||
delete_exif($extension2, $uploadedFile2['tmp_name']);
|
delete_exif($extension2, $uploadedFile2['tmp_name']);
|
||||||
|
resizeImage($uploadedFile2['tmp_name'], 8192, 8192);
|
||||||
if($aibwm === true){
|
if($aibwm === true){
|
||||||
AIBlockWaterMark($uploadedFile2['tmp_name'], $userid);
|
AIBlockWaterMark($uploadedFile2['tmp_name'], $userid);
|
||||||
}
|
}
|
||||||
if(AMS3_CHKS == "true"){
|
if(AMS3_CHKS == "true"){
|
||||||
$s3result = uploadAmazonS3($uploadedFile2['tmp_name']);
|
$s3result = uploadAmazonS3($uploadedFile2['tmp_name']);
|
||||||
}else{
|
}else{
|
||||||
|
if(check_mime($uploadedFile2['tmp_name']) == "image/webp"){
|
||||||
|
$extension2 = 'webp';
|
||||||
|
}
|
||||||
// 新しいファイル名を生成(uniqid + 拡張子)
|
// 新しいファイル名を生成(uniqid + 拡張子)
|
||||||
$newFilename2 = createUniqId() . '-'.$userid.'.' . $extension2;
|
$newFilename2 = createUniqId() . '-'.$userid.'.' . $extension2;
|
||||||
// 保存先のパスを生成
|
// 保存先のパスを生成
|
||||||
@@ -1536,12 +1551,16 @@ function send_ueuse($userid,$rpUniqid,$ruUniqid,$ueuse,$photo1,$photo2,$photo3,$
|
|||||||
// アップロードされたファイルの拡張子を取得
|
// アップロードされたファイルの拡張子を取得
|
||||||
$extension3 = convert_mime(check_mime($uploadedFile3['tmp_name']));
|
$extension3 = convert_mime(check_mime($uploadedFile3['tmp_name']));
|
||||||
delete_exif($extension3, $uploadedFile3['tmp_name']);
|
delete_exif($extension3, $uploadedFile3['tmp_name']);
|
||||||
|
resizeImage($uploadedFile3['tmp_name'], 8192, 8192);
|
||||||
if($aibwm === true){
|
if($aibwm === true){
|
||||||
AIBlockWaterMark($uploadedFile3['tmp_name'], $userid);
|
AIBlockWaterMark($uploadedFile3['tmp_name'], $userid);
|
||||||
}
|
}
|
||||||
if(AMS3_CHKS == "true"){
|
if(AMS3_CHKS == "true"){
|
||||||
$s3result = uploadAmazonS3($uploadedFile3['tmp_name']);
|
$s3result = uploadAmazonS3($uploadedFile3['tmp_name']);
|
||||||
}else{
|
}else{
|
||||||
|
if(check_mime($uploadedFile3['tmp_name']) == "image/webp"){
|
||||||
|
$extension3 = 'webp';
|
||||||
|
}
|
||||||
// 新しいファイル名を生成(uniqid + 拡張子)
|
// 新しいファイル名を生成(uniqid + 拡張子)
|
||||||
$newFilename3 = createUniqId() . '-'.$userid.'.' . $extension3;
|
$newFilename3 = createUniqId() . '-'.$userid.'.' . $extension3;
|
||||||
// 保存先のパスを生成
|
// 保存先のパスを生成
|
||||||
@@ -1590,12 +1609,16 @@ function send_ueuse($userid,$rpUniqid,$ruUniqid,$ueuse,$photo1,$photo2,$photo3,$
|
|||||||
// アップロードされたファイルの拡張子を取得
|
// アップロードされたファイルの拡張子を取得
|
||||||
$extension4 = convert_mime(check_mime($uploadedFile4['tmp_name']));
|
$extension4 = convert_mime(check_mime($uploadedFile4['tmp_name']));
|
||||||
delete_exif($extension4, $uploadedFile4['tmp_name']);
|
delete_exif($extension4, $uploadedFile4['tmp_name']);
|
||||||
|
resizeImage($uploadedFile4['tmp_name'], 8192, 8192);
|
||||||
if($aibwm === true){
|
if($aibwm === true){
|
||||||
AIBlockWaterMark($uploadedFile4['tmp_name'], $userid);
|
AIBlockWaterMark($uploadedFile4['tmp_name'], $userid);
|
||||||
}
|
}
|
||||||
if(AMS3_CHKS == "true"){
|
if(AMS3_CHKS == "true"){
|
||||||
$s3result = uploadAmazonS3($uploadedFile4['tmp_name']);
|
$s3result = uploadAmazonS3($uploadedFile4['tmp_name']);
|
||||||
}else{
|
}else{
|
||||||
|
if(check_mime($uploadedFile4['tmp_name']) == "image/webp"){
|
||||||
|
$extension4 = 'webp';
|
||||||
|
}
|
||||||
// 新しいファイル名を生成(uniqid + 拡張子)
|
// 新しいファイル名を生成(uniqid + 拡張子)
|
||||||
$newFilename4 = createUniqId() . '-'.$userid.'.' . $extension4;
|
$newFilename4 = createUniqId() . '-'.$userid.'.' . $extension4;
|
||||||
// 保存先のパスを生成
|
// 保存先のパスを生成
|
||||||
|
|||||||
@@ -43,7 +43,7 @@ accounts
|
|||||||
help
|
help
|
||||||
helps
|
helps
|
||||||
info
|
info
|
||||||
infomation
|
information
|
||||||
notice
|
notice
|
||||||
notification
|
notification
|
||||||
tech
|
tech
|
||||||
@@ -1,4 +1,4 @@
|
|||||||
uwuzu
|
uwuzu
|
||||||
1.6.3
|
1.6.4
|
||||||
2025/08/10
|
2025/08/20
|
||||||
daichimarukana,putonfps
|
daichimarukana,putonfps
|
||||||
@@ -1,6 +1,15 @@
|
|||||||
## リリースノートだぜぇぇぇぇぇぇい!!!!!!!
|
## リリースノートだぜぇぇぇぇぇぇい!!!!!!!
|
||||||
ここにはuwuzuの更新情報を載せてくぜぇ~!(いやまてテンションおかしいだろ...)
|
ここにはuwuzuの更新情報を載せてくぜぇ~!(いやまてテンションおかしいだろ...)
|
||||||
|
|
||||||
|
## Version 1.6.4
|
||||||
|
2025/08/20
|
||||||
|
fix: 画像のアップロード時に発生するおそれのある脆弱性を修正しました!
|
||||||
|
fix: 前回のアップデートで配信予定だったbanuserid.txtの修正配信忘れの修正を行いました!
|
||||||
|
chg: ユーズに添付される画像の最大サイズを8192x8192pxにしました!(超過するものはリサイズされます)
|
||||||
|
chg: gif画像を除くユーズ添付画像ファイルはすべてwebp形式に変換されるようになりました!
|
||||||
|
del: svg・tiff・ico形式の画像の対応機能を削除しました!
|
||||||
|
Special thanks: @modurili デバッグ用画像をご提供いただきました。
|
||||||
|
|
||||||
## Version 1.6.3
|
## Version 1.6.3
|
||||||
2025/08/10
|
2025/08/10
|
||||||
fix: 「0」のみのユーズが行えない問題を修正しました!
|
fix: 「0」のみのユーズが行えない問題を修正しました!
|
||||||
@@ -12,6 +21,7 @@ new: 通知APIにvalueidという値を追加しました!
|
|||||||
valueidでは、ユーズのメンションや返信では、メンション・返信してきたユーズのID、フォローなどではフォローしてきたユーザーのIDなどが入ります。
|
valueidでは、ユーズのメンションや返信では、メンション・返信してきたユーズのID、フォローなどではフォローしてきたユーザーのIDなどが入ります。
|
||||||
すべての通知にvalueidの値が含まれるわけではありませんので、ご注意ください。
|
すべての通知にvalueidの値が含まれるわけではありませんので、ご注意ください。
|
||||||
これにより、uwuzuのDB内のnotificationテーブルの構造に「valueid」(varchar(256))を追加する必要があります。
|
これにより、uwuzuのDB内のnotificationテーブルの構造に「valueid」(varchar(256))を追加する必要があります。
|
||||||
|
uwuzu_database.sqlは更新済みです。
|
||||||
|
|
||||||
## Version 1.6.2 (Hapuego)
|
## Version 1.6.2 (Hapuego)
|
||||||
2025/08/08
|
2025/08/08
|
||||||
|
|||||||
+3
-15
@@ -1,24 +1,12 @@
|
|||||||
{
|
{
|
||||||
"software": "uwuzu",
|
"software": "uwuzu",
|
||||||
"version": "1.6.3",
|
"version": "1.6.4",
|
||||||
"release_date": "2025/08/10",
|
"release_date": "2025/08/20",
|
||||||
"release_notes": "このアップデートでは、「0」のみのユーズが行えない問題の修正や、タイムラインの大幅高速化などの改善が含まれています!\nアップデートの前にDBの構造の更新が必要です。リリースノートに従って更新をしてください!\n詳細はリリースノートをご確認ください。",
|
"release_notes": "このアップデートでは、ユーズの添付画像に関する重大な脆弱性の修正が含まれます。\n早急なアップデートを強く推奨します!!!!!\n詳細はリリースノートをご確認ください。",
|
||||||
"notices": "アップデート前にデータのバックアップを行うことをおすすめします!",
|
"notices": "アップデート前にデータのバックアップを行うことをおすすめします!",
|
||||||
"files": {
|
"files": {
|
||||||
"overwrite": [
|
"overwrite": [
|
||||||
"/api/me/notification/index.php",
|
|
||||||
"/function/function.php",
|
"/function/function.php",
|
||||||
"/nextpage/bookmarktimeline.php",
|
|
||||||
"/nextpage/followtimeline.php",
|
|
||||||
"/nextpage/foryoutimeline.php",
|
|
||||||
"/nextpage/localtimeline.php",
|
|
||||||
"/nextpage/searchtimeline.php",
|
|
||||||
"/nextpage/ueusetimeline.php",
|
|
||||||
"/nextpage/userliketimeline.php",
|
|
||||||
"/nextpage/usermediatimeline.php",
|
|
||||||
"/nextpage/usertimeline.php",
|
|
||||||
"/settings/index.php",
|
|
||||||
"/login.php",
|
|
||||||
"/server/uwuzuabout.txt",
|
"/server/uwuzuabout.txt",
|
||||||
"/server/uwuzuinfo.txt",
|
"/server/uwuzuinfo.txt",
|
||||||
"/server/uwuzurelease.txt"
|
"/server/uwuzurelease.txt"
|
||||||
|
|||||||
Reference in New Issue
Block a user